From 6d9dd2a39fedbf0d379e5ebf2bd7816ef98af3af Mon Sep 17 00:00:00 2001 From: Imanol Fernandez Date: Wed, 28 Aug 2019 09:13:16 +0200 Subject: [PATCH] Always add the new window to the center. Update tray when windows are moved. (#1689) --- .../org/mozilla/vrbrowser/VRBrowserActivity.java | 5 +++++ .../org/mozilla/vrbrowser/ui/widgets/Windows.java | 13 +++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/app/src/common/shared/org/mozilla/vrbrowser/VRBrowserActivity.java b/app/src/common/shared/org/mozilla/vrbrowser/VRBrowserActivity.java index 7f599275f..327ce644f 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/VRBrowserActivity.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/VRBrowserActivity.java @@ -265,6 +265,11 @@ public void onFocusedWindowChanged(@NonNull WindowWidget aFocusedWindow, @Nullab public void onWindowBorderChanged(@NonNull WindowWidget aChangeWindow) { mKeyboard.proxifyLayerIfNeeded(mWindows.getCurrentWindows()); } + + @Override + public void onWindowsMoved() { + updateWidget(mTray); + } }); // Create Browser navigation widget 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 4fc075f97..261bafc62 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 @@ -88,6 +88,7 @@ public enum WindowPlacement{ public interface Delegate { void onFocusedWindowChanged(@NonNull WindowWidget aFocusedWindow, @Nullable WindowWidget aPrevFocusedWindow); void onWindowBorderChanged(@NonNull WindowWidget aChangeWindow); + void onWindowsMoved(); } public Windows(Context aContext) { @@ -192,14 +193,16 @@ public WindowWidget addWindow() { placeWindow(frontWindow, WindowPlacement.RIGHT); } else if (leftWindow != null && focusedWindow == frontWindow) { // Opening a new window from front window - placeWindow(newWindow, WindowPlacement.RIGHT); + placeWindow(newWindow, WindowPlacement.FRONT); + placeWindow(frontWindow, WindowPlacement.RIGHT); } else if (rightWindow != null && focusedWindow == rightWindow) { // Opening a new window from right window placeWindow(newWindow, WindowPlacement.FRONT); placeWindow(frontWindow, WindowPlacement.LEFT); } else if (rightWindow != null && focusedWindow == frontWindow) { // Opening a new window from right window - placeWindow(newWindow, WindowPlacement.LEFT); + placeWindow(newWindow, WindowPlacement.FRONT); + placeWindow(frontWindow, WindowPlacement.LEFT); } updateMaxWindowScales(); @@ -292,6 +295,9 @@ public void moveWindowRight(@NonNull WindowWidget aWindow) { placeWindow(frontWindow, WindowPlacement.RIGHT); } updateViews(); + if (mDelegate != null) { + mDelegate.onWindowsMoved(); + } } public void moveWindowLeft(@NonNull WindowWidget aWindow) { @@ -311,6 +317,9 @@ public void moveWindowLeft(@NonNull WindowWidget aWindow) { placeWindow(frontWindow, WindowPlacement.LEFT); } updateViews(); + if (mDelegate != null) { + mDelegate.onWindowsMoved(); + } } public void focusWindow(@NonNull WindowWidget aWindow) {