From 37f1c5f8ca33daddc01b11ab88d399e91d99ab86 Mon Sep 17 00:00:00 2001 From: Vivien Nicolas <21@vingtetun.org> Date: Thu, 30 Dec 2010 10:05:30 +0100 Subject: [PATCH] Bug 621888 - followup [r=mfinkle] --- mobile/chrome/content/browser-ui.js | 11 +++-------- mobile/chrome/content/browser.js | 26 +++++++++++++++----------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/mobile/chrome/content/browser-ui.js b/mobile/chrome/content/browser-ui.js index 2aab91226bd6..bd4438a09cf2 100644 --- a/mobile/chrome/content/browser-ui.js +++ b/mobile/chrome/content/browser-ui.js @@ -835,8 +835,7 @@ var BrowserUI = { document.getElementById("tabs").removeClosedTab(); break; case "SizeChanged": - if (aEvent.detail) - this.sizeControls(ViewableAreaObserver.height, ViewableAreaObserver.width); + this.sizeControls(ViewableAreaObserver.width, ViewableAreaObserver.height); break; // Window events case "keypress": @@ -1882,7 +1881,6 @@ var FormHelperUI = { tabs.addEventListener("TabClose", this, true); Elements.browsers.addEventListener("URLChanged", this, true); Elements.browsers.addEventListener("SizeChanged", this, true); - window.addEventListener("resize", this, true); // Listen for modal dialog to show/hide the UI messageManager.addMessageListener("DOMWillOpenModalDialog", this); @@ -1951,16 +1949,13 @@ var FormHelperUI = { this.hide(); break; - case "resize": + case "SizeChanged": setTimeout(function(self) { SelectHelperUI.resize(); self._container.contentHasChanged(); - }, 0, this); - break; - case "SizeChanged": - if (aEvent.detail) this._zoom(this._currentElementRect, this._currentCaretRect); + }, 0, this); break; } }, diff --git a/mobile/chrome/content/browser.js b/mobile/chrome/content/browser.js index 297e6535fd14..6d4f11f70d46 100644 --- a/mobile/chrome/content/browser.js +++ b/mobile/chrome/content/browser.js @@ -353,7 +353,7 @@ var Browser = { os.addObserver(ViewableAreaObserver, "softkb-change", false); Elements.contentNavigator.addEventListener("SizeChanged", function() { ViewableAreaObserver.update(); - }, false); + }, true); window.QueryInterface(Ci.nsIDOMChromeWindow).browserDOMWindow = new nsBrowserAccess(); @@ -3046,18 +3046,22 @@ var ViewableAreaObserver = { let rect = Rect.fromRect(JSON.parse(aData)); this._height = rect.bottom - rect.top; this._width = rect.right - rect.left; - this._update(aIsVKB); + this.update(); }, - update: function va_update(aIsVKB) { - Browser.styles["viewable-height"].height = (this.height - Elements.contentNavigator.getBoundingClientRect().height) + "px"; - Browser.styles["viewable-width"].width = this.width + "px"; + update: function va_update() { + let oldHeight = parseInt(Browser.styles["viewable-height"].height); + let newHeight = this.height - Elements.contentNavigator.getBoundingClientRect().height; + if (newHeight != oldHeight) { + Browser.styles["viewable-height"].height = newHeight + "px"; + Browser.styles["viewable-width"].width = this.width + "px"; - // setTimeout 0 to ensure the resize event handler is well finished - setTimeout(function() { - let event = document.createEvent("UIEvents"); - event.initUIEvent("SizeChanged", true, false, window, aIsVKB); - Elements.browsers.dispatchEvent(event); - }, 0); + // setTimeout(callback, 0) to ensure the resize event handler dispatch is finished + setTimeout(function() { + let event = document.createEvent("Events"); + event.initEvent("SizeChanged", true, false); + Elements.browsers.dispatchEvent(event); + }, 0); + } } };