From c2ea566b12e3fa015d06a494b39dc0a005a7f6e6 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger <asterix@lagaule.org> Date: Thu, 21 Apr 2011 20:52:14 +0200 Subject: [PATCH] add advanced option to allow not saving roster position. Fixes #5712 --- src/common/config.py | 1 + src/roster_window.py | 14 ++++++++------ src/statusicon.py | 13 ++++++++----- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/common/config.py b/src/common/config.py index a5f7b3d585..7f5bd2de5c 100644 --- a/src/common/config.py +++ b/src/common/config.py @@ -147,6 +147,7 @@ class Config: 'single-msg-y-position': [opt_int, 0], 'single-msg-width': [opt_int, 400], 'single-msg-height': [opt_int, 280], + 'save-roster-position': [opt_bool, True, _('If true, Gajim will save roster position when hiding roster, and restore it when showing roster.')], 'roster_x-position': [ opt_int, 0 ], 'roster_y-position': [ opt_int, 0 ], 'roster_width': [ opt_int, 200 ], diff --git a/src/roster_window.py b/src/roster_window.py index 5f7ea5d2ec..b7ef6f0544 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -2337,9 +2337,10 @@ class RosterWindow: # in case show_roster_on_start is False and roster is never shown # window.window is None if self.window.window is not None: - x, y = self.window.window.get_root_origin() - gajim.config.set('roster_x-position', x) - gajim.config.set('roster_y-position', y) + if gajim.config.get('save-roster-position'): + x, y = self.window.window.get_root_origin() + gajim.config.set('roster_x-position', x) + gajim.config.set('roster_y-position', y) width, height = self.window.get_size() # For the width use the size of the vbox containing the tree and # status combo, this will cancel out any hpaned width @@ -6150,9 +6151,10 @@ class RosterWindow: gtkgui_helpers.resize_window(self.window, gajim.config.get('roster_width'), gajim.config.get('roster_height')) - gtkgui_helpers.move_window(self.window, - gajim.config.get('roster_x-position'), - gajim.config.get('roster_y-position')) + if gajim.config.get('save-roster-position'): + gtkgui_helpers.move_window(self.window, + gajim.config.get('roster_x-position'), + gajim.config.get('roster_y-position')) self.popups_notification_height = 0 self.popup_notification_windows = [] diff --git a/src/statusicon.py b/src/statusicon.py index 16369353d7..f580f42384 100644 --- a/src/statusicon.py +++ b/src/statusicon.py @@ -396,7 +396,8 @@ class StatusIcon: # 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): + if not gtkgui_helpers.possibly_move_window_in_current_desktop( + win) and gajim.config.get('save-roster-position'): x, y = win.get_position() gajim.config.set('roster_x-position', x) gajim.config.set('roster_y-position', y) @@ -404,9 +405,10 @@ class StatusIcon: else: if not win.get_property('visible'): win.show_all() - gtkgui_helpers.move_window(win, - gajim.config.get('roster_x-position'), - gajim.config.get('roster_y-position')) + if gajim.config.get('save-roster-position'): + gtkgui_helpers.move_window(win, + gajim.config.get('roster_x-position'), + gajim.config.get('roster_y-position')) if not gajim.config.get('roster_window_skip_taskbar'): win.set_property('skip-taskbar-hint', False) win.present_with_time(gtk.get_current_event_time()) @@ -418,7 +420,8 @@ class StatusIcon: if not event: return win = gajim.interface.roster.window - if not win.get_property('visible'): + if not win.get_property('visible') and gajim.config.get( + 'save-roster-position'): gtkgui_helpers.move_window(win, gajim.config.get('roster_x-position'), gajim.config.get('roster_y-position')) -- GitLab