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 873d7fc3c..09f97b0a0 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 @@ -121,6 +121,7 @@ class WindowsState { private Accounts mAccounts; private Services mServices; private PromptDialogWidget mNoInternetDialog; + private boolean mCompositorPaused = false; private enum PanelType { NONE, @@ -428,6 +429,10 @@ public void focusWindow(@Nullable WindowWidget aWindow) { } public void pauseCompositor() { + if (mCompositorPaused) { + return; + } + mCompositorPaused = true; for (WindowWidget window: mRegularWindows) { window.pauseCompositor(); } @@ -437,6 +442,10 @@ public void pauseCompositor() { } public void resumeCompositor() { + if (!mCompositorPaused) { + return; + } + mCompositorPaused = false; for (WindowWidget window: mRegularWindows) { window.resumeCompositor(); } @@ -453,6 +462,9 @@ public void onPause() { public void onResume() { mIsPaused = false; + if (mCompositorPaused) { + resumeCompositor(); + } TelemetryWrapper.resetOpenedWindowsCount(mRegularWindows.size(), false); TelemetryWrapper.resetOpenedWindowsCount(mPrivateWindows.size(), true);