Bug 1126479 - Correctly set widget size mode on Android r=jchen draft
authorJames Willcox <snorp@snorp.net>
Thu, 10 Aug 2017 11:39:42 -0500
changeset 644383 e429047c6ab75f30a9ba049aa440d6243f9dd4db
parent 644382 744be359b53f0e4448324c5aabb3567aa19b3734
child 644384 8d219313478adfb392dac41b923945fb5d94af6a
push id73426
push userbmo:snorp@snorp.net
push dateThu, 10 Aug 2017 22:25:15 +0000
reviewersjchen
bugs1126479
milestone57.0a1
Bug 1126479 - Correctly set widget size mode on Android r=jchen MozReview-Commit-ID: AfNWDsyQC95
widget/android/nsWindow.cpp
--- a/widget/android/nsWindow.cpp
+++ b/widget/android/nsWindow.cpp
@@ -1775,16 +1775,22 @@ void
 nsWindow::SetZIndex(int32_t aZIndex)
 {
     ALOG("nsWindow[%p]::SetZIndex %d ignored", (void*)this, aZIndex);
 }
 
 void
 nsWindow::SetSizeMode(nsSizeMode aMode)
 {
+    if (aMode == mSizeMode) {
+        return;
+    }
+
+    nsBaseWidget::SetSizeMode(aMode);
+
     switch (aMode) {
         case nsSizeMode_Minimized:
             GeckoAppShell::MoveTaskToBack();
             break;
         case nsSizeMode_Fullscreen:
             MakeFullScreen(true);
             break;
         default:
@@ -1924,16 +1930,18 @@ nsWindow::MakeFullScreen(bool aFullScree
     }
 
     mIsFullScreen = aFullScreen;
     mAndroidView->mEventDispatcher->Dispatch(aFullScreen ?
             u"GeckoView:FullScreenEnter" : u"GeckoView:FullScreenExit");
 
     nsIWidgetListener* listener = GetWidgetListener();
     if (listener) {
+        mSizeMode = mIsFullScreen ? nsSizeMode_Fullscreen : nsSizeMode_Normal;
+        listener->SizeModeChanged(mSizeMode);
         listener->FullscreenChanged(mIsFullScreen);
     }
     return NS_OK;
 }
 
 mozilla::layers::LayerManager*
 nsWindow::GetLayerManager(PLayerTransactionChild*, LayersBackend, LayerManagerPersistence)
 {