Closed Bug 1666874 Opened 2 months ago Closed 1 month ago

Skeleton UI does not correctly handle maximized windows

Categories

(Firefox :: General, defect)

defect

Tracking

()

RESOLVED FIXED
84 Branch
Tracking Status
firefox84 --- fixed

People

(Reporter: dthayer, Assigned: dthayer)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

NOTE: this is behind the currently disabled Windows skeleton UI feature.

  • Turn on the skeleton UI pref
  • Maximize the window
  • Close and reopen Firefox
  • Notice that the skeleton UI window is not maximized
Assignee: nobody → dothayer
Status: NEW → ASSIGNED
Severity: -- → S4

Most of this patch is a dance to avoid size flickering of the skeleton UI
window. We change all Resize/Move/SetSizeMode calls from before the first
nsWindow::Show call. Normally those have no effect, since the window isn't
shown yet, and if the window is not maximized, they typically match the
sizes we've gotten out of the registry anyway. However, if we are maximized,
then they produce a lot of visual noise. We can however achieve the desired
effect by just calling SetWindowPlacement.

Similarly, we switch the window styles of the skeleton UI window to match those
of the toplevel Windows window, and adjust the client rect from our window proc
in a way that matches the adjustments in nsWindow in the WM_NCCALCSIZE handler.
We do this because otherwise we get a flicker as soon as we change the styles
and nonclient margins as the fake chrome pops up and then back down.

Lastly we also change the extended window styles so that they match. We
historically added WS_EX_TOOLWINDOW here to hide the toolbar entry, because it
would otherwise switch out to a new toolbar entry when we changed the window
styles. However since our new styles match, we no longer need to do this. It
was also causing the maximized window to paint over the Windows taskbar.

Depends on D91453

Pushed by dothayer@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/967c4cf56fd2
Support maximized windows for skeleton UI r=agashlin
Pushed by dothayer@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/23c5d0a4118e
Support maximized windows for skeleton UI r=agashlin
Status: ASSIGNED → RESOLVED
Closed: 1 month ago
Resolution: --- → FIXED
Target Milestone: --- → 84 Branch
Flags: needinfo?(dothayer)
You need to log in before you can comment on or make changes to this bug.