diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/Windows.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/Windows.java index 6cda95a43..efd295d6e 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/Windows.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/Windows.java @@ -68,6 +68,8 @@ class WindowsState { public static final int MAX_WINDOWS = 3; private WindowWidget mFullscreenWindow; private WindowPlacement mPrevWindowPlacement; + private WindowPlacement mRegularWindowPlacement; + private WindowPlacement mPrivateWindowPlacement; private boolean mStoredCurvedMode = false; private boolean mForcedCurvedMode = false; @@ -98,6 +100,9 @@ public Windows(Context aContext) { mRegularWindows = new ArrayList<>(); mPrivateWindows = new ArrayList<>(); + mRegularWindowPlacement = WindowPlacement.FRONT; + mPrivateWindowPlacement = WindowPlacement.FRONT; + mStoredCurvedMode = SettingsStore.getInstance(mContext).getCylinderDensity() > 0.0f; restoreWindows(); @@ -402,6 +407,7 @@ public void enterPrivateMode() { } mPrivateMode = true; updateCurvedMode(true); + mRegularWindowPlacement = mFocusedWindow.getWindowPlacement(); for (WindowWidget window: mRegularWindows) { setWindowVisible(window, false); } @@ -416,7 +422,7 @@ public void enterPrivateMode() { } } else { - focusWindow(getFrontWindow()); + focusWindow(getWindowWithPlacement(mPrivateWindowPlacement)); } updateViews(); mWidgetManager.pushWorldBrightness(this, WidgetManagerDelegate.DEFAULT_DIM_BRIGHTNESS); @@ -428,13 +434,14 @@ public void exitPrivateMode() { } mPrivateMode = false; updateCurvedMode(true); + mPrivateWindowPlacement = mFocusedWindow.getWindowPlacement(); for (WindowWidget window: mRegularWindows) { setWindowVisible(window, true); } for (WindowWidget window: mPrivateWindows) { setWindowVisible(window, false); } - focusWindow(getFrontWindow()); + focusWindow(getWindowWithPlacement(mRegularWindowPlacement)); updateViews(); mWidgetManager.popWorldBrightness(this); } @@ -866,6 +873,7 @@ public void onFullScreen(GeckoSession session, boolean aFullScreen) { } } + @Nullable private WindowWidget getWindowWithSession(GeckoSession aSession) { for (WindowWidget window: getCurrentWindows()) { if (window.getSessionStack().containsSession(aSession)) {