[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.
This commit is contained in:
Alexander Larsson 2011-04-15 16:13:01 +02:00
parent 0098344f84
commit 22c250e324

View File

@ -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