better skipping of focus events while stackedcycling, fixes bug where esc would still change the order.
Dana Jansens danakj@orodu.net
2 files changed,
9 insertions(+),
5 deletions(-)
M
scripts/focus.py
→
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 _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)
M
scripts/stackedcycle.py
→
scripts/stackedcycle.py
@@ -167,6 +167,8 @@ else: r = 0
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 @@ # popup disappears, screwing up the focus
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 @@ # revert
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()