diff --git a/src/dialogs.py b/src/dialogs.py index 64695c16afd5d16e4788e5a381856bb50edd73d3..c5cba1ea75d56a514f984b955b3bb60d933a94dc 100644 --- a/src/dialogs.py +++ b/src/dialogs.py @@ -2063,12 +2063,12 @@ class SingleMessageWindow: if gajim.config.get('saveposition'): # get window position and size from config - gtkgui_helpers.move_window(self.window, - gajim.config.get('single-msg-x-position'), - gajim.config.get('single-msg-y-position')) gtkgui_helpers.resize_window(self.window, gajim.config.get('single-msg-width'), gajim.config.get('single-msg-height')) + gtkgui_helpers.move_window(self.window, + gajim.config.get('single-msg-x-position'), + gajim.config.get('single-msg-y-position')) self.window.show_all() def on_single_message_window_destroy(self, widget): diff --git a/src/gtkgui_helpers.py b/src/gtkgui_helpers.py index c697164608675a70c7050ffb551a69b25e7e4d15..1bfe3955f7db150b71a077f1f08bf8b1d42d6bb4 100644 --- a/src/gtkgui_helpers.py +++ b/src/gtkgui_helpers.py @@ -247,6 +247,11 @@ def move_window(window, x, y): x = 0 if y < 0: y = 0 + w, h = window.get_size() + if x + w > screen_w: + x = screen_w - w + if y + h > screen_h: + y = screen_h - h window.move(x, y) def resize_window(window, w, h): diff --git a/src/message_window.py b/src/message_window.py index c1eaf8fc6d5f72b7b5df001158b78a8a8f0d1b02..1a7ce786cfef0b1b10421c78c90cee5478f7cff5 100644 --- a/src/message_window.py +++ b/src/message_window.py @@ -870,8 +870,8 @@ class MessageWindowMgr(gobject.GObject): # Position and size window based on saved state and window mode if not self.one_window_opened(contact, acct, type): - self._position_window(win, acct, type) self._resize_window(win, acct, type) + self._position_window(win, acct, type) self._windows[win_key] = win return win diff --git a/src/roster_window.py b/src/roster_window.py index 7da8e52930071640f873975c8c8f7860b710bb00..039309550d2b658be53f25610df0b9509d5b2886 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -5420,12 +5420,12 @@ class RosterWindow: # no need of this variable self.have_new_chat_accel = False # Is the "Ctrl+N" shown ? if gajim.config.get('saveposition'): - gtkgui_helpers.move_window(self.window, - gajim.config.get('roster_x-position'), - gajim.config.get('roster_y-position')) 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')) self.popups_notification_height = 0 self.popup_notification_windows = []