diff options
Diffstat (limited to 'gdk/broadway/broadway.js')
-rw-r--r-- | 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 e8e2ea444e..d6fb43d366 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 |