[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:
@ -125,8 +125,6 @@ var surfaces = {};
|
|||||||
var stackingOrder = [];
|
var stackingOrder = [];
|
||||||
var outstandingCommands = new Array();
|
var outstandingCommands = new Array();
|
||||||
var inputSocket = null;
|
var inputSocket = null;
|
||||||
var frameSizeX = -1;
|
|
||||||
var frameSizeY = -1;
|
|
||||||
|
|
||||||
var GDK_CROSSING_NORMAL = 0;
|
var GDK_CROSSING_NORMAL = 0;
|
||||||
var GDK_CROSSING_GRAB = 1;
|
var GDK_CROSSING_GRAB = 1;
|
||||||
@ -250,9 +248,15 @@ function updateBrowserWindowGeometry(win) {
|
|||||||
|
|
||||||
var x = surface.x;
|
var x = surface.x;
|
||||||
var y = surface.y;
|
var y = surface.y;
|
||||||
if (frameSizeX > 0) {
|
|
||||||
x = win.screenX + frameSizeX;
|
if (win.mozInnerScreenX != undefined) {
|
||||||
y = win.screenY + frameSizeY;
|
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 ||
|
if (x != surface.x || y != surface.y ||
|
||||||
@ -869,15 +873,6 @@ function updateForEvent(ev) {
|
|||||||
lastTimeStamp = ev.timeStamp;
|
lastTimeStamp = ev.timeStamp;
|
||||||
if (ev.target.surface && ev.target.surface.window) {
|
if (ev.target.surface && ev.target.surface.window) {
|
||||||
var win = 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);
|
updateBrowserWindowGeometry(win);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user