From 82d147b5d74757ce6f1676aab16c9e6e1e837b4e Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 10 Feb 2003 07:35:51 +0000 Subject: [PATCH] better skipping of focus events while stackedcycling, fixes bug where esc would still change the order. --- scripts/focus.py | 8 ++++++-- scripts/stackedcycle.py | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/scripts/focus.py b/scripts/focus.py index 2fb6188a..de426c72 100644 --- a/scripts/focus.py +++ b/scripts/focus.py @@ -24,7 +24,7 @@ import ob # maintain a list of clients, stacked in focus order _clients = [] -_disable = 0 +_skip = 0 def _focusable(client, desktop): if not client.normal(): return 0 @@ -50,9 +50,13 @@ def _remove(client): def _focused(data): global _clients - if _disable: return + if _skip: + global _skip + _skip -= 1 + return if data.client: + print data.client.window() # move it to the top try: _remove(data.client) diff --git a/scripts/stackedcycle.py b/scripts/stackedcycle.py index 59dbc98e..b78c37f5 100644 --- a/scripts/stackedcycle.py +++ b/scripts/stackedcycle.py @@ -167,6 +167,8 @@ class _cycledata: ob.send_client_msg(self.screeninfo.rootWindow(), otk.atoms.openbox_active_window, client.window(), final, r) + if not final: + focus._skip += 1 def cycle(self, data, forward): if not self.cycling: @@ -177,7 +179,6 @@ class _cycledata: ob.mgrab(data.screen) self.cycling = 1 - focus._disable = 1 self.state = data.state self.screen = ob.openbox.screen(data.screen) self.screeninfo = otk.display.screenInfo(data.screen) @@ -215,11 +216,10 @@ class _cycledata: self.menupos = 0 if done: - self.cycling = 0 - focus._disable = 0 # activate, and deiconify/unshade/raise self.activatetarget(notreverting) self.destroypopup() + self.cycling = 0 ob.kungrab() ob.mungrab() -- 2.39.2