Bug 621888 - followup [r=mfinkle]

This commit is contained in:
Vivien Nicolas 2010-12-30 10:05:30 +01:00
Родитель 2aee83bb25
Коммит 37f1c5f8ca
2 изменённых файлов: 18 добавлений и 19 удалений

Просмотреть файл

@ -835,8 +835,7 @@ var BrowserUI = {
document.getElementById("tabs").removeClosedTab(); document.getElementById("tabs").removeClosedTab();
break; break;
case "SizeChanged": case "SizeChanged":
if (aEvent.detail) this.sizeControls(ViewableAreaObserver.width, ViewableAreaObserver.height);
this.sizeControls(ViewableAreaObserver.height, ViewableAreaObserver.width);
break; break;
// Window events // Window events
case "keypress": case "keypress":
@ -1882,7 +1881,6 @@ var FormHelperUI = {
tabs.addEventListener("TabClose", this, true); tabs.addEventListener("TabClose", this, true);
Elements.browsers.addEventListener("URLChanged", this, true); Elements.browsers.addEventListener("URLChanged", this, true);
Elements.browsers.addEventListener("SizeChanged", this, true); Elements.browsers.addEventListener("SizeChanged", this, true);
window.addEventListener("resize", this, true);
// Listen for modal dialog to show/hide the UI // Listen for modal dialog to show/hide the UI
messageManager.addMessageListener("DOMWillOpenModalDialog", this); messageManager.addMessageListener("DOMWillOpenModalDialog", this);
@ -1951,16 +1949,13 @@ var FormHelperUI = {
this.hide(); this.hide();
break; break;
case "resize": case "SizeChanged":
setTimeout(function(self) { setTimeout(function(self) {
SelectHelperUI.resize(); SelectHelperUI.resize();
self._container.contentHasChanged(); self._container.contentHasChanged();
}, 0, this);
break;
case "SizeChanged":
if (aEvent.detail)
this._zoom(this._currentElementRect, this._currentCaretRect); this._zoom(this._currentElementRect, this._currentCaretRect);
}, 0, this);
break; break;
} }
}, },

Просмотреть файл

@ -353,7 +353,7 @@ var Browser = {
os.addObserver(ViewableAreaObserver, "softkb-change", false); os.addObserver(ViewableAreaObserver, "softkb-change", false);
Elements.contentNavigator.addEventListener("SizeChanged", function() { Elements.contentNavigator.addEventListener("SizeChanged", function() {
ViewableAreaObserver.update(); ViewableAreaObserver.update();
}, false); }, true);
window.QueryInterface(Ci.nsIDOMChromeWindow).browserDOMWindow = new nsBrowserAccess(); window.QueryInterface(Ci.nsIDOMChromeWindow).browserDOMWindow = new nsBrowserAccess();
@ -3046,18 +3046,22 @@ var ViewableAreaObserver = {
let rect = Rect.fromRect(JSON.parse(aData)); let rect = Rect.fromRect(JSON.parse(aData));
this._height = rect.bottom - rect.top; this._height = rect.bottom - rect.top;
this._width = rect.right - rect.left; this._width = rect.right - rect.left;
this._update(aIsVKB); this.update();
}, },
update: function va_update(aIsVKB) { update: function va_update() {
Browser.styles["viewable-height"].height = (this.height - Elements.contentNavigator.getBoundingClientRect().height) + "px"; let oldHeight = parseInt(Browser.styles["viewable-height"].height);
Browser.styles["viewable-width"].width = this.width + "px"; 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(callback, 0) to ensure the resize event handler dispatch is finished
setTimeout(function() { setTimeout(function() {
let event = document.createEvent("UIEvents"); let event = document.createEvent("Events");
event.initUIEvent("SizeChanged", true, false, window, aIsVKB); event.initEvent("SizeChanged", true, false);
Elements.browsers.dispatchEvent(event); Elements.browsers.dispatchEvent(event);
}, 0); }, 0);
}
} }
}; };