summaryrefslogtreecommitdiff
path: root/scripts/focus.py
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-01-30 21:39:12 +0000
committerDana Jansens <danakj@orodu.net>2003-01-30 21:39:12 +0000
commitf7a0eb7624fa323a37f9fb0e306d7e1bbc745e15 (patch)
tree65d4d080f359dff7a3a3de099f1bfc03bfe207ee /scripts/focus.py
parent3409b046a043d8ffabf2e9c33ea037c2e5be15e4 (diff)
grab the keyboard during move/resize to make sure the popup doesnt get left onscreen if the modifiers are released before the button
Diffstat (limited to 'scripts/focus.py')
-rw-r--r--scripts/focus.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/scripts/focus.py b/scripts/focus.py
index adba3725..00e53cbc 100644
--- a/scripts/focus.py
+++ b/scripts/focus.py
@@ -136,7 +136,8 @@ def _focus_stacked_ungrab(data):
# have all the modifiers this started with been released?
if not _cyc_mask & data.state:
_destroy_popup_list()
- ob.kungrab() # ungrab ourself
+ ob.kungrab()
+ ob.mungrab()
_doing_stacked = 0;
if cycle_raise:
client = ob.openbox.findClient(_cyc_w)
@@ -246,6 +247,10 @@ def focus_next_stacked(data, forward=1):
_create_popup_list(data)
ob.kgrab(data.screen, _focus_stacked_ungrab)
+ # the pointer grab causes pointer events during the keyboard grab to
+ # go away, which means we don't get enter notifies when the popup
+ # disappears, screwing up the focus
+ ob.mgrab(data.screen)
focus_next_stacked(data, forward) # start with the first press
def focus_prev_stacked(data):