Closed Bug 524258 Opened 11 years ago Closed 11 years ago

Fullscreen fix for 1.9.1 & 1.9.2


(Core Graveyard :: Widget: OS/2, defect)

1.9.2 Branch
Not set


(status1.9.2 beta2-fixed, status1.9.1 .6-fixed)

Tracking Status
status1.9.2 --- beta2-fixed
status1.9.1 --- .6-fixed


(Reporter: dragtext, Assigned: dragtext)



(1 file, 1 obsolete file)

Bug 267609 & other sources report several issues with fullscreen mode.

The first involves this sequence:
- maximize a browser window
- put it in fullscreen (aka "kiosk") mode
- minimize it, then restore it

In v1.9.1, the problem occurs when you exit fullscreen mode.  The frame & its controls are restored but the window completely fills the screen.  The maximize/restore button has no effect;  the window has to be resized manually.

In v1.9.2 & 1.9.3, the window remains in fullscreen mode (no frame or frame controls) but it's only the size it was before being maximized (i.e. it doesn't fill the screen).  When you exit fullscreen, it then has the same problem as 1.9.1.

Minimizing a fullscreen window produces two minor issues:  the minimized icon appears on top of other windows, rather than below them; and, if the window was previously maximized, you can't doubleclick on the icon to restore it - you must select "Restore" from its menu.

The attached patches for 1.9.1 & 1.9.2 avoid these issues by making fullscreen & maximized modes mutually exclusive.  If a window is maximized, it's restored before entering fullscreen mode.  This approach requires far less code & contorted logic than would be needed to make the two modes compatible.

Note:  the two patches are identical except for the line numbers.  A similar patch for the trunk that involves more extensive changes will be attached to Bug 522896.
Attachment #408178 - Flags: review?(mozilla)
Attached patch fix for 1.9.2 (obsolete) — Splinter Review
Attachment #408179 - Flags: review?(mozilla)
Comment on attachment 408178 [details] [diff] [review]
fix for 1.9.1 and 1.9.2

>+  if (WinQueryWindowULong(hFrame, QWL_STYLE) & WS_MAXIMIZED) {
>+    WinSetWindowPos(hFrame, 0, 0, 0, 0, 0, SWP_RESTORE | SWP_NOREDRAW);

This patch needed these two hFrame replace with hwdnFrame, but otherwise it's OK. I'll fix that on checkin.
Attachment #408178 - Flags: review?(mozilla) → review+
Attachment #408179 - Attachment is obsolete: true
Attachment #408179 - Flags: review?(mozilla)
Comment on attachment 408179 [details] [diff] [review]
fix for 1.9.2

Same problem here. (I meant hwndFrame, of course.)
Attachment #408178 - Attachment description: fix for 1.9.1 → fix for 1.9.1 and 1.9.2
Pushed to both branches (trunk will follow in bug 522896, hopefully soon):
Closed: 11 years ago
Resolution: --- → FIXED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.