oldpos = self.menupos
self.menupos = -1
- # get the list of clients
+ # get the list of clients, keeping iconic windows at the bottom
self.clients = []
+ iconic_clients = []
for i in focus._clients:
c = ob.openbox.findClient(i)
- if c: self.clients.append(c)
+ if c:
+ if c.iconic(): iconic_clients.append(c)
+ else: self.clients.append(c)
+ self.clients.extend(iconic_clients)
font = self.style.labelFont()
longest = 0
# popup disappears, screwing up the focus
ob.mgrab(self.screen.number())
+ if not len(self.clients): return # don't both doing anything
+
self.menuwidgets[self.menupos].unfocus()
if forward:
self.menupos += 1
def grabfunc(self, data):
done = 0
+ notreverting = 1
# 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":
+ elif data.action == ob.KeyAction.Press and data.key == "Escape":
done = 1
+ notreverting = 0
# revert
self.menupos = 0
if done:
self.cycling = 0
focus._disable = 0
- self.activatetarget(1) # activate, and deiconify/unshade/raise
+ # activate, and deiconify/unshade/raise
+ self.activatetarget(notreverting)
self.destroypopup()
ob.kungrab()
ob.mungrab()