[gtk+] [broadway] Correctly handle ungrabs in the browser side



commit 22c250e32495284a03cbdf1799c8af59a46d2bd3
Author: Alexander Larsson <alexl redhat com>
Date:   Fri Apr 15 16:13:01 2011 +0200

    [broadway] Correctly handle ungrabs in the browser side
    
    Always call doUngrab to get the right event, and always do this
    if the grabbed window is hidden or destroyed.

 gdk/broadway/broadway.js |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/gdk/broadway/broadway.js b/gdk/broadway/broadway.js
index e8e2ea4..d6fb43d 100644
--- a/gdk/broadway/broadway.js
+++ b/gdk/broadway/broadway.js
@@ -560,6 +560,9 @@ function cmdShowSurface(id)
 
 function cmdHideSurface(id)
 {
+    if (grab.window == id)
+	doUngrab();
+
     var surface = surfaces[id];
 
     if (!surface.visible)
@@ -627,6 +630,9 @@ function moveToTop(surface) {
 
 function cmdDeleteSurface(id)
 {
+    if (grab.window == id)
+	doUngrab();
+
     var surface = surfaces[id];
     var i = stackingOrder.indexOf(surface);
     if (i >= 0)
@@ -714,8 +720,8 @@ function cmdGrabPointer(id, ownerEvents)
 function cmdUngrabPointer()
 {
     sendInput ("u", []);
-
-    grab.window = null;
+    if (grab.window)
+	doUngrab();
 }
 
 function handleCommands(cmdObj)
@@ -1100,7 +1106,7 @@ function onMouseUp (ev) {
     sendInput ("B", [realWindowWithMouse, id, pos.rootX, pos.rootY, pos.winX, pos.winY, lastState, button]);
 
     if (grab.window != null && grab.implicit)
-	doUngrab(ev.timeStamp);
+	doUngrab();
 }
 
 /* Some of the keyboard handling code is from noVNC and



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