[gtk+] [broadway] Report right root coors in toplevel mode



commit 06fc6e007e350a55d54b7a3423e81e6d4cf453ea
Author: Alexander Larsson <alexl redhat com>
Date:   Wed Apr 6 16:51:31 2011 +0200

    [broadway] Report right root coors in toplevel mode

 gdk/broadway/broadway.js |   31 ++++++++++++-------------------
 1 files changed, 12 insertions(+), 19 deletions(-)
---
diff --git a/gdk/broadway/broadway.js b/gdk/broadway/broadway.js
index 94d9b2e..0ce4b11 100644
--- a/gdk/broadway/broadway.js
+++ b/gdk/broadway/broadway.js
@@ -673,21 +673,6 @@ function sendInput(cmd, args)
     }
 }
 
-function getDocumentCoordinates(element)
-{
-    var res = new Object();
-    res.x = element.offsetLeft;
-    res.y = element.offsetTop;
-
-    var offsetParent = element.offsetParent;
-    while (offsetParent != null) {
-	res.x += offsetParent.offsetLeft;
-	res.y += offsetParent.offsetTop;
-	offsetParent = offsetParent.offsetParent;
-    }
-    return res;
-}
-
 function getPositionsFromAbsCoord(absX, absY, relativeId) {
     var res = Object();
 
@@ -696,16 +681,24 @@ function getPositionsFromAbsCoord(absX, absY, relativeId) {
     res.winX = absX;
     res.winY = absY;
     if (relativeId != 0) {
-	var pos = getDocumentCoordinates(surfaces[relativeId].canvas);
-	res.winX = res.winX - pos.x;
-	res.winY = res.winY - pos.y;
+	var surface = surfaces[relativeId];
+	res.winX = res.winX - surface.x;
+	res.winY = res.winY - surface.y;
     }
 
     return res;
 }
 
 function getPositionsFromEvent(ev, relativeId) {
-    var res = getPositionsFromAbsCoord(ev.pageX, ev.pageY, relativeId);
+    var absX, absY;
+    if (useToplevelWindows) {
+	absX = ev.screenX;
+	absY = ev.screenY;
+    } else {
+	absX = ev.pageX;
+	absY = ev.pageY;
+    }
+    var res = getPositionsFromAbsCoord(absX, absY, relativeId);
 
     lastX = res.rootX;
     lastY = res.rootY;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]