diff -r cf0e849385e0 src/vncdisplay.c --- a/src/vncdisplay.c Thu Sep 11 17:07:42 2008 +0100 +++ b/src/vncdisplay.c Thu Sep 25 12:57:31 2008 +0100 @@ -703,13 +703,12 @@ } } - if ((!priv->grab_keyboard || !priv->absolute) && - key->type == GDK_KEY_PRESS && + if (key->type == GDK_KEY_PRESS && ((keyval == GDK_Control_L && (key->state & GDK_MOD1_MASK)) || (keyval == GDK_Alt_L && (key->state & GDK_CONTROL_MASK)))) { if (priv->in_pointer_grab) do_pointer_ungrab(VNC_DISPLAY(widget), FALSE); - else + else if (!priv->grab_keyboard || !priv->absolute) do_pointer_grab(VNC_DISPLAY(widget), FALSE); }