Dont move window between virtual desktops
Its the job of the window manager to restore a window to the correct location
This commit is contained in:
parent
31a500245f
commit
6b54863157
|
@ -316,39 +316,6 @@ def get_current_desktop(window):
|
|||
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
|
||||
|
||||
NOTE: Window is a GDK window.
|
||||
"""
|
||||
#TODO: property_get doesn't work:
|
||||
#prop_atom = Gdk.Atom.intern('_NET_CURRENT_DESKTOP', False)
|
||||
#type_atom = Gdk.Atom.intern("CARDINAL", False)
|
||||
#w = Gdk.Screen.get_default().get_root_window()
|
||||
#Gdk.property_get(w, prop_atom, type_atom, 0, 9999, False)
|
||||
return False
|
||||
if os.name == 'nt':
|
||||
return False
|
||||
|
||||
root_window = 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.present()
|
||||
return True
|
||||
return False
|
||||
|
||||
def file_is_locked(path_to_file):
|
||||
"""
|
||||
Return True if file is locked
|
||||
|
|
|
@ -114,7 +114,6 @@ class PluginsWindow:
|
|||
app.plugin_manager.gui_extension_point('plugin_window', self)
|
||||
|
||||
self.window.show_all()
|
||||
gtkgui_helpers.possibly_move_window_in_current_desktop(self.window)
|
||||
|
||||
def on_key_press_event(self, widget, event):
|
||||
if event.keyval == Gdk.KEY_Escape:
|
||||
|
|
|
@ -368,17 +368,12 @@ class StatusIcon:
|
|||
win = app.interface.roster.window
|
||||
if not app.events.get_systray_events():
|
||||
# No pending events, so toggle visible/hidden for roster window
|
||||
if win.get_property('visible') and (win.get_property(
|
||||
'has-toplevel-focus') or os.name == 'nt'):
|
||||
# visible in ANY virtual desktop?
|
||||
|
||||
# we could be in another VD right now. eg vd2
|
||||
# and we want to show it in vd2
|
||||
if not gtkgui_helpers.possibly_move_window_in_current_desktop(
|
||||
win) and app.config.get('save-roster-position'):
|
||||
x, y = win.get_position()
|
||||
app.config.set('roster_x-position', x)
|
||||
app.config.set('roster_y-position', y)
|
||||
if win.get_property('visible'):
|
||||
if win.get_property('has-toplevel-focus') or os.name == 'nt':
|
||||
if app.config.get('save-roster-position'):
|
||||
x, y = win.get_position()
|
||||
app.config.set('roster_x-position', x)
|
||||
app.config.set('roster_y-position', y)
|
||||
win.hide() # else we hide it from VD that was visible in
|
||||
else:
|
||||
if not win.get_property('visible'):
|
||||
|
|
Loading…
Reference in New Issue