diff options
-rw-r--r-- | src/com/android/browser/BaseUi.java | 11 | ||||
-rw-r--r-- | src/com/android/browser/Tab.java | 16 |
2 files changed, 26 insertions, 1 deletions
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java index c24cc480..2d7c0b38 100644 --- a/src/com/android/browser/BaseUi.java +++ b/src/com/android/browser/BaseUi.java @@ -108,6 +108,7 @@ public abstract class BaseUi implements UI { protected TitleBar mTitleBar; private NavigationBarBase mNavigationBar; private boolean mBlockFocusAnimations; + private boolean mFullscreenModeLocked; private EdgeSwipeController mEdgeSwipeController; private EdgeSwipeSettings mEdgeSwipeSettings; @@ -138,6 +139,7 @@ public abstract class BaseUi implements UI { // install system ui visibility listeners mDecorView = mActivity.getWindow().getDecorView(); mDecorView.setOnSystemUiVisibilityChangeListener(mSystemUiVisibilityChangeListener); + mFullscreenModeLocked = false; } private View.OnSystemUiVisibilityChangeListener mSystemUiVisibilityChangeListener = @@ -844,7 +846,16 @@ public abstract class BaseUi implements UI { } } + public void forceDisableFullscreenMode(boolean disabled) { + mFullscreenModeLocked = false; + setFullscreen(!disabled); + mFullscreenModeLocked = disabled; + } + public void setFullscreen(boolean enabled) { + if (mFullscreenModeLocked) + return; + Window win = mActivity.getWindow(); WindowManager.LayoutParams winParams = win.getAttributes(); final int bits = WindowManager.LayoutParams.FLAG_FULLSCREEN; diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java index 8f4db51e..1bcf4a91 100644 --- a/src/com/android/browser/Tab.java +++ b/src/com/android/browser/Tab.java @@ -321,7 +321,12 @@ class Tab implements PictureListener { mCurrentState = new PageState(mContext, view.isPrivateBrowsingEnabled(), url, favicon); mLoadStartTime = SystemClock.uptimeMillis(); - + // Need re-enable FullScreenMode on Page navigation if needed + if (BrowserSettings.getInstance().useFullscreen()){ + Controller controller = (Controller) mWebViewController; + BaseUi ui = (BaseUi) controller.getUi(); + ui.forceDisableFullscreenMode(false); + } // If we start a touch icon load and then load a new page, we don't // want to cancel the current touch icon loader. But, we do want to // create a new one when the touch icon url is known. @@ -668,6 +673,15 @@ class Tab implements PictureListener { } } } + + @Override + public void onKeyboardStateChange(boolean popup) { + if (BrowserSettings.getInstance().useFullscreen()) { + Controller controller = (Controller) mWebViewController; + BaseUi ui = (BaseUi) controller.getUi(); + ui.forceDisableFullscreenMode(popup); + } + } }; private void syncCurrentState(WebView view, String url) { |