[broadway] Use mozInnerScreenX & co to get window position

This way we don't have to rely on any event, which won't work until
we get an event.
This commit is contained in:
Alexander Larsson
2011-04-11 17:03:33 +02:00
parent 8a7e208bb2
commit 75dc3f3a07

View File

@ -125,8 +125,6 @@ var surfaces = {};
var stackingOrder = [];
var outstandingCommands = new Array();
var inputSocket = null;
var frameSizeX = -1;
var frameSizeY = -1;
var GDK_CROSSING_NORMAL = 0;
var GDK_CROSSING_GRAB = 1;
@ -250,9 +248,15 @@ function updateBrowserWindowGeometry(win) {
var x = surface.x;
var y = surface.y;
if (frameSizeX > 0) {
x = win.screenX + frameSizeX;
y = win.screenY + frameSizeY;
if (win.mozInnerScreenX != undefined) {
x = win.mozInnerScreenX;
y = win.mozInnerScreenY;
} else if (win.screenTop != undefined) {
x = win.screenTop;
y = win.screenLeft;
} else {
alert("No implementation to get window position");
}
if (x != surface.x || y != surface.y ||
@ -869,15 +873,6 @@ function updateForEvent(ev) {
lastTimeStamp = ev.timeStamp;
if (ev.target.surface && ev.target.surface.window) {
var win = ev.target.surface.window;
if (ev.screenX != undefined && ev.clientX != undefined) {
var newFrameSizeX = ev.screenX - ev.clientX - win.screenX;
var newFrameSizeY = ev.screenY - ev.clientY - win.screenY;
if (newFrameSizeX != frameSizeX || newFrameSizeY != frameSizeY) {
frameSizeX = newFrameSizeX;
frameSizeY = newFrameSizeY;
toplevelWindows.forEach(updateBrowserWindowGeometry);
}
}
updateBrowserWindowGeometry(win);
}
}