Open Bug 1157497 Opened 9 years ago Updated 1 year ago

Session restore should restore maximized windows to the proper workspace on Ubuntu

Categories

(Firefox :: Session Restore, defect)

Unspecified
Linux
defect

Tracking

()

Tracking Status
firefox40 --- affected

People

(Reporter: ted, Unassigned)

References

(Depends on 1 open bug)

Details

I'm splitting this off as a follow-up from bug 1155668 because it involves an extra wrinkle unfortunately. Of course it also happens to be my primary use case, which sucks.

The session restore code doesn't pull window position/size from the actual window itself in case of non-normal-sizemode windows:
https://hg.mozilla.org/mozilla-central/annotate/946ac85af8f4/browser/components/sessionstore/SessionStore.jsm#l3103

This makes sense, as we want to restore the window's original dimensions and then set the sizemode, so that if you then un-maximize the window you get it back to a sensible size.

However, when you have a maximized window and you switch to another workspace in Compiz, the window gets moved to a new position. If we don't collect these coordinates and restore the window to them then it's not going to wind up on the right workspace.

My best idea here would be to add an API to nsIWidget to set the original window rect for non-normal-sizemode windows, so that sessionstore could save both the coordinates of the maximized window as well as the coordinates of its pre-maximization placement, and then do:
1) Move window to maximized coordinates
2) Maximize it
3) Set the normal coordinates.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.