make Escape abort cycling
Dana Jansens danakj@orodu.net
1 files changed,
17 insertions(+),
9 deletions(-)
jump to
M
scripts/stackedcycle.py
→
scripts/stackedcycle.py
@@ -197,16 +197,24 @@ if activate_while_cycling:
self.activatetarget(0) # activate, but dont deiconify/unshade/raise def grabfunc(self, data): - if data.action == ob.KeyAction.Release: - # have all the modifiers this started with been released? - if not self.state & data.state: - self.cycling = 0 - focus._disable = 0 - self.activatetarget(1) # activate, and deiconify/unshade/raise - self.destroypopup() - ob.kungrab() - ob.mungrab() + done = 0 + # have all the modifiers this started with been released? + if (data.action == ob.KeyAction.Release and + not self.state & data.state): + done = 1 + # has Escape been pressed? + if data.action == ob.KeyAction.Press and data.key == "Escape": + done = 1 + # revert + self.menupos = 0 + if done: + self.cycling = 0 + focus._disable = 0 + self.activatetarget(1) # activate, and deiconify/unshade/raise + self.destroypopup() + ob.kungrab() + ob.mungrab() def _newwindow(data): if _o.cycling: _o.populatelist()