add func in gtkgui helpers

This commit is contained in:
Nikos Kouremenos 2005-10-31 19:35:17 +00:00
parent f5411971c7
commit 878b274481
2 changed files with 28 additions and 20 deletions

View File

@ -314,3 +314,26 @@ def get_current_desktop(window):
# f.e. prop is ('CARDINAL', 32, [0]) we want 0 or 1.. from [0]
current_virtual_desktop_no = prop[2][0]
return current_virtual_desktop_no
def possibly_move_window_in_current_desktop(window):
'''moves GTK window to current virtual desktop if it is not in the
current virtual desktop
window is GTK window'''
if os.name == 'nt':
return
root_window = gtk.gdk.screen_get_default().get_root_window()
# current user's vd
current_virtual_desktop_no = get_current_desktop(root_window)
# vd roster window is in
window_virtual_desktop = get_current_desktop(window.window)
# if one of those is None, something went wrong and we cannot know
# VD info, just hide it (default action) and not show it afterwards
if None not in (window_virtual_desktop, current_virtual_desktop_no):
if current_virtual_desktop_no != window_virtual_desktop:
# we are in another VD that the window was
# so show it in current VD
window.show()

View File

@ -265,27 +265,10 @@ class Systray:
# no pending events, so toggle visible/hidden for roster window
if win.get_property('visible'): # visible in ANY virtual desktop?
win.hide() # we hide it from VD that was visible in
# but we could be in another VD right now. eg vd2
# and we want not only to hide it in vd1 but also show it in vd2
if os.name != 'nt':
root_window = gtk.gdk.screen_get_default().get_root_window()
# current user's vd
current_virtual_desktop_no = gtkgui_helpers.get_current_desktop(
root_window)
# vd roster window is in
window_virtual_desktop = gtkgui_helpers.get_current_desktop(
win.window)
# if one of those is None, something went wrong and we cannot know
# VD info, just hide it (default action) and not show it afterwards
if None not in (window_virtual_desktop, current_virtual_desktop_no):
if current_virtual_desktop_no != window_virtual_desktop:
# we are in another VD that the window was
# so show it in current VD
win.show()
gtkgui_helpers.possibly_move_window_in_current_desktop(win)
else:
win.present()
else:
@ -333,8 +316,10 @@ class Systray:
tv.scroll_to_end()
def on_middle_click(self):
'''middle click raises window to have complete focus (fe. get kbd events)
but if already raised, it hides it'''
win = gajim.interface.roster.window
if win.is_active():
if win.is_active(): # is it fully raised? (eg does it receive kbd events?)
win.hide()
else:
win.present()