зеркало из https://github.com/mozilla/gecko-dev.git
30478629cf
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. Differential Revision: https://phabricator.services.mozilla.com/D93534 |
||
---|---|---|
.. | ||
test | ||
AppWindow.cpp | ||
AppWindow.h | ||
LiveResizeListener.h | ||
components.conf | ||
moz.build | ||
nsAppShellCID.h | ||
nsAppShellService.cpp | ||
nsAppShellService.h | ||
nsAppShellWindowEnumerator.cpp | ||
nsAppShellWindowEnumerator.h | ||
nsChromeTreeOwner.cpp | ||
nsChromeTreeOwner.h | ||
nsContentTreeOwner.cpp | ||
nsContentTreeOwner.h | ||
nsIAppShellService.idl | ||
nsIAppWindow.idl | ||
nsIWindowMediator.idl | ||
nsIWindowMediatorListener.idl | ||
nsIWindowlessBrowser.idl | ||
nsIXULBrowserWindow.idl | ||
nsWindowMediator.cpp | ||
nsWindowMediator.h |