change click on systray behaviour. left click always toggle roster appearance, middle lcick to open pending events. fixes #2932

This commit is contained in:
Yann Leboulanger 2007-02-15 22:15:37 +00:00
parent 3fd9792b20
commit d7f5885778
1 changed files with 14 additions and 19 deletions

View File

@ -267,22 +267,19 @@ class Systray:
def on_left_click(self): def on_left_click(self):
win = gajim.interface.roster.window win = gajim.interface.roster.window
if len(gajim.events.get_systray_events()) == 0: # toggle visible/hidden for roster window
# no pending events, so toggle visible/hidden for roster window if win.get_property('visible'): # visible in ANY virtual desktop?
if win.get_property('visible'): # visible in ANY virtual desktop?
# we could be in another VD right now. eg vd2 # we could be in another VD right now. eg vd2
# and we want to show it in vd2 # and we want to show it in vd2
if not gtkgui_helpers.possibly_move_window_in_current_desktop(win): if not gtkgui_helpers.possibly_move_window_in_current_desktop(win):
win.hide() # else we hide it from VD that was visible in win.hide() # else we hide it from VD that was visible in
else:
# in Windows (perhaps other Window Managers too) minimize state
# is remembered, so make sure it's not minimized (iconified)
# because user wants to see roster
win.deiconify()
win.present()
else: else:
self.handle_first_event() # in Windows (perhaps other Window Managers too) minimize state
# is remembered, so make sure it's not minimized (iconified)
# because user wants to see roster
win.deiconify()
win.present()
def handle_first_event(self): def handle_first_event(self):
account, jid, event = gajim.events.get_first_systray_event() account, jid, event = gajim.events.get_first_systray_event()
@ -291,11 +288,9 @@ class Systray:
def on_middle_click(self): def on_middle_click(self):
'''middle click raises window to have complete focus (fe. get kbd events) '''middle click raises window to have complete focus (fe. get kbd events)
but if already raised, it hides it''' but if already raised, it hides it'''
win = gajim.interface.roster.window if len(gajim.events.get_systray_events()) == 0:
if win.is_active(): # is it fully raised? (eg does it receive kbd events?) return
win.hide() self.handle_first_event()
else:
win.present()
def on_clicked(self, widget, event): def on_clicked(self, widget, event):
self.on_tray_leave_notify_event(widget, None) self.on_tray_leave_notify_event(widget, None)