@@ -66,7 +66,7 @@ public class NavigationBarWidget extends UIWidget implements GeckoSession.Naviga
6666 private boolean mIsResizing ;
6767 private boolean mIsInVRVideo ;
6868 private boolean mAutoEnteredVRVideo ;
69- private WidgetPlacement mSizeBeforeFullScreen ;
69+ private WidgetPlacement mPlacementBeforeResize ;
7070 private Runnable mResizeBackHandler ;
7171 private Runnable mFullScreenBackHandler ;
7272 private Runnable mVRVideoBackHandler ;
@@ -126,10 +126,10 @@ private void initialize(Context aContext) {
126126 mBrightnessButton = findViewById (R .id .brightnessButton );
127127 mFullScreenResizeButton = findViewById (R .id .fullScreenResizeEnterButton );
128128 mProjectionButton = findViewById (R .id .projectionButton );
129- mSizeBeforeFullScreen = new WidgetPlacement (aContext );
129+ mPlacementBeforeResize = new WidgetPlacement (aContext );
130130
131131
132- mResizeBackHandler = () -> exitResizeMode (true );
132+ mResizeBackHandler = () -> exitResizeMode (ResizeAction . RESTORE_SIZE );
133133
134134 mFullScreenBackHandler = this ::exitFullScreenMode ;
135135 mVRVideoBackHandler = new Runnable () {
@@ -207,7 +207,7 @@ else if (SessionStore.get().canUnstackSession())
207207
208208 mResizeExitButton .setOnClickListener (view -> {
209209 view .requestFocusFromTouch ();
210- exitResizeMode (true );
210+ exitResizeMode (ResizeAction . KEEP_SIZE );
211211 if (mAudio != null ) {
212212 mAudio .playSound (AudioEngine .Sound .CLICK );
213213 }
@@ -373,7 +373,7 @@ public void setBrowserWidget(WindowWidget aWidget) {
373373 }
374374
375375 private void setFullScreenSize () {
376- mSizeBeforeFullScreen .copyFrom (mWindowWidget .getPlacement ());
376+ mPlacementBeforeResize .copyFrom (mWindowWidget .getPlacement ());
377377 // Set browser fullscreen size
378378 float aspect = SettingsStore .getInstance (getContext ()).getWindowAspect ();
379379 Media media = SessionStore .get ().getFullScreenVideo ();
@@ -437,7 +437,7 @@ private void exitFullScreenMode() {
437437 }
438438 }, 50 );
439439
440- mWindowWidget .getPlacement ().copyFrom (mSizeBeforeFullScreen );
440+ mWindowWidget .getPlacement ().copyFrom (mPlacementBeforeResize );
441441 mWidgetManager .updateWidget (mWindowWidget );
442442 mWindowWidget .setSaveResizeChanges (true );
443443
@@ -459,6 +459,7 @@ private void enterResizeMode() {
459459 return ;
460460 }
461461 mIsResizing = true ;
462+ mPlacementBeforeResize .copyFrom (mWindowWidget .getPlacement ());
462463 startWidgetResize ();
463464 AnimationHelper .fadeIn (mResizeModeContainer , AnimationHelper .FADE_ANIMATION_DURATION , null );
464465 if (mIsInFullScreenMode ) {
@@ -471,10 +472,20 @@ private void enterResizeMode() {
471472 closeFloatingMenus ();
472473 }
473474
474- private void exitResizeMode (boolean aCommitChanges ) {
475+
476+ enum ResizeAction {
477+ KEEP_SIZE ,
478+ RESTORE_SIZE
479+ }
480+
481+ private void exitResizeMode (ResizeAction aResizeAction ) {
475482 if (!mIsResizing ) {
476483 return ;
477484 }
485+ if (aResizeAction == ResizeAction .RESTORE_SIZE ) {
486+ mWindowWidget .getPlacement ().copyFrom (mPlacementBeforeResize );
487+ mWidgetManager .updateWidget (mWindowWidget );
488+ }
478489 mIsResizing = false ;
479490 finishWidgetResize ();
480491 if (mIsInFullScreenMode ) {
@@ -735,7 +746,7 @@ public void onFullScreen(GeckoSession session, boolean aFullScreen) {
735746 enterFullScreenMode ();
736747 }
737748 if (mIsResizing ) {
738- exitResizeMode (false );
749+ exitResizeMode (ResizeAction . KEEP_SIZE );
739750 }
740751 AtomicBoolean autoEnter = new AtomicBoolean (false );
741752 mAutoSelectedProjection = VideoProjectionMenuWidget .getAutomaticProjection (SessionStore .get ().getUriFromSession (session ), autoEnter );
@@ -982,7 +993,7 @@ public void onBookmarksHidden() {
982993 @ Override
983994 public void onBookmarksClicked () {
984995 if (mIsResizing ) {
985- exitResizeMode (false );
996+ exitResizeMode (ResizeAction . RESTORE_SIZE );
986997
987998 } else if (mIsInFullScreenMode ) {
988999 exitFullScreenMode ();
0 commit comments