mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-18 06:45:33 +00:00
Bug 1186662 - Part 2: Suppress the Displayport during active resize on mac. r=mstange
--HG-- extra : commitid : 1zwlHIxhhH3 extra : rebase_source : ed1104473af2a24b077eb940d03d6b90997d4e63
This commit is contained in:
parent
da02cdcfee
commit
3993946636
@ -34,7 +34,7 @@
|
||||
</xul:tabbox>
|
||||
<children/>
|
||||
</content>
|
||||
<implementation implements="nsIDOMEventListener, nsIMessageListener">
|
||||
<implementation implements="nsIDOMEventListener, nsIMessageListener, nsIObserver">
|
||||
|
||||
<property name="tabContextMenu" readonly="true"
|
||||
onget="return this.tabContainer.contextMenu;"/>
|
||||
@ -102,6 +102,9 @@
|
||||
<field name="mProgressListeners">
|
||||
[]
|
||||
</field>
|
||||
<field name="mActiveResizeDisplayportSuppression">
|
||||
null
|
||||
</field>
|
||||
<field name="mTabsProgressListeners">
|
||||
[]
|
||||
</field>
|
||||
@ -4070,12 +4073,40 @@
|
||||
]]></body>
|
||||
</method>
|
||||
|
||||
<method name="observe">
|
||||
<parameter name="aSubject"/>
|
||||
<parameter name="aTopic"/>
|
||||
<parameter name="aData"/>
|
||||
<body><![CDATA[
|
||||
if (aTopic == "live-resize-start") {
|
||||
let browser = this.mCurrentTab.linkedBrowser;
|
||||
let fl = browser.QueryInterface(Ci.nsIFrameLoaderOwner).frameLoader;
|
||||
if (fl && fl.tabParent && !this.mActiveResizeDisplayportSuppression) {
|
||||
fl.tabParent.suppressDisplayport(true);
|
||||
this.mActiveResizeDisplayportSuppression = browser;
|
||||
}
|
||||
} else if (aTopic == "live-resize-end") {
|
||||
let browser = this.mActiveResizeDisplayportSuppression;
|
||||
if (browser) {
|
||||
let fl = browser.QueryInterface(Ci.nsIFrameLoaderOwner).frameLoader;
|
||||
if (fl && fl.tabParent) {
|
||||
fl.tabParent.suppressDisplayport(false);
|
||||
this.mActiveResizeDisplayportSuppression = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
]]></body>
|
||||
</method>
|
||||
|
||||
<constructor>
|
||||
<![CDATA[
|
||||
let browserStack = document.getAnonymousElementByAttribute(this, "anonid", "browserStack");
|
||||
this.mCurrentBrowser = document.getAnonymousElementByAttribute(this, "anonid", "initialBrowser");
|
||||
this.mCurrentBrowser.permanentKey = {};
|
||||
|
||||
Services.obs.addObserver(this, "live-resize-start", false);
|
||||
Services.obs.addObserver(this, "live-resize-end", false);
|
||||
|
||||
this.mCurrentTab = this.tabContainer.firstChild;
|
||||
const nsIEventListenerService =
|
||||
Components.interfaces.nsIEventListenerService;
|
||||
@ -4161,6 +4192,9 @@
|
||||
|
||||
<destructor>
|
||||
<![CDATA[
|
||||
Services.obs.removeObserver(this, "live-resize-start", false);
|
||||
Services.obs.removeObserver(this, "live-resize-end", false);
|
||||
|
||||
for (var i = 0; i < this.mTabListeners.length; ++i) {
|
||||
let browser = this.getBrowserAtIndex(i);
|
||||
if (browser.registeredOpenURI) {
|
||||
|
@ -280,6 +280,9 @@ typedef NSInteger NSEventGestureAxis;
|
||||
|
||||
- (BOOL)isCoveringTitlebar;
|
||||
|
||||
- (void)viewWillStartLiveResize;
|
||||
- (void)viewDidEndLiveResize;
|
||||
|
||||
- (NSColor*)vibrancyFillColorForThemeGeometryType:(nsITheme::ThemeGeometryType)aThemeGeometryType;
|
||||
- (NSColor*)vibrancyFontSmoothingBackgroundColorForThemeGeometryType:(nsITheme::ThemeGeometryType)aThemeGeometryType;
|
||||
|
||||
|
@ -3436,6 +3436,28 @@ NSEvent* gLastDragMouseDownEvent = nil;
|
||||
[(BaseWindow*)[self window] drawsContentsIntoWindowFrame];
|
||||
}
|
||||
|
||||
- (void)viewWillStartLiveResize
|
||||
{
|
||||
nsCOMPtr<nsIObserverService> observerService = mozilla::services::GetObserverService();
|
||||
|
||||
if (!observerService) {
|
||||
return;
|
||||
}
|
||||
|
||||
observerService->NotifyObservers(nullptr, "live-resize-start", nullptr);
|
||||
}
|
||||
|
||||
- (void)viewDidEndLiveResize
|
||||
{
|
||||
nsCOMPtr<nsIObserverService> observerService = mozilla::services::GetObserverService();
|
||||
|
||||
if (!observerService) {
|
||||
return;
|
||||
}
|
||||
|
||||
observerService->NotifyObservers(nullptr, "live-resize-end", nullptr);
|
||||
}
|
||||
|
||||
- (NSColor*)vibrancyFillColorForThemeGeometryType:(nsITheme::ThemeGeometryType)aThemeGeometryType
|
||||
{
|
||||
if (!mGeckoChild) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user