mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-31 14:15:30 +00:00
cf091ea0eb
The machinery for suppressing the displayport during live resizes was using the Observer service. However, in the case of multiple browser windows, this meant that all the open browser windows would have their displayport suppressed if *any* of the browser windows was being resized. This was mostly ok, as the displayport suppression would be turned off once the resize ended. However, the code to kick off a repaint with the unsuppressed displayport would only get triggered on one of the windows (whichever happened to process the unsuppress message last). This patch stops using the Observer service for the implementation machinery, and instead locates the active TabParent of the relevant nsWindow, and invokes the displayport suppression directly on that. This fixes the repainting bug and also avoids unnecessarily broadcasting the suppression/unsuppression notification to windows that don't neccessarily need it. MozReview-Commit-ID: LBHOgOW9KUp
44 lines
1.0 KiB
Python
44 lines
1.0 KiB
Python
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
# vim: set filetype=python:
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
MOCHITEST_CHROME_MANIFESTS += ['test/chrome.ini']
|
|
|
|
XPIDL_SOURCES += [
|
|
'nsIAppShellService.idl',
|
|
'nsIPopupWindowManager.idl',
|
|
'nsIWindowlessBrowser.idl',
|
|
'nsIWindowMediator.idl',
|
|
'nsIWindowMediatorListener.idl',
|
|
'nsIXULBrowserWindow.idl',
|
|
'nsIXULWindow.idl',
|
|
]
|
|
|
|
XPIDL_MODULE = 'appshell'
|
|
|
|
EXPORTS += [
|
|
'LiveResizeListener.h',
|
|
'nsAppShellCID.h',
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
'nsAppShellFactory.cpp',
|
|
'nsAppShellService.cpp',
|
|
'nsAppShellWindowEnumerator.cpp',
|
|
'nsChromeTreeOwner.cpp',
|
|
'nsContentTreeOwner.cpp',
|
|
'nsWebShellWindow.cpp',
|
|
'nsWindowMediator.cpp',
|
|
'nsXULWindow.cpp',
|
|
]
|
|
|
|
LOCAL_INCLUDES += [
|
|
'/dom/base',
|
|
]
|
|
|
|
FINAL_LIBRARY = 'xul'
|
|
|
|
include('/ipc/chromium/chromium-config.mozbuild')
|