[shtein] save maximized state window. Fixes #4630
This commit is contained in:
parent
c58afbc2f9
commit
9d6312d198
|
@ -136,6 +136,7 @@ class Config:
|
|||
'gc-hpaned-position': [opt_int, 430],
|
||||
'gc_refer_to_nick_char': [opt_str, ',', _('Character to add after nickname when using nick completion (tab) in group chat.')],
|
||||
'gc_proposed_nick_char': [opt_str, '_', _('Character to propose to add after desired nickname when desired nickname is used by someone else in group chat.')],
|
||||
'msgwin-max-state': [opt_bool, False],
|
||||
'msgwin-x-position': [opt_int, -1], # Default is to let the window manager decide
|
||||
'msgwin-y-position': [opt_int, -1], # Default is to let the window manager decide
|
||||
'msgwin-width': [opt_int, 500],
|
||||
|
|
|
@ -887,6 +887,7 @@ class MessageWindowMgr(gobject.GObject):
|
|||
# we track the lifetime of this window
|
||||
win.window.connect('delete-event', self._on_window_delete)
|
||||
win.window.connect('destroy', self._on_window_destroy)
|
||||
win.window.connect('window-state-event', self._on_window_state_change)
|
||||
return win
|
||||
|
||||
def _gtk_win_to_msg_win(self, gtk_win):
|
||||
|
@ -1003,8 +1004,11 @@ 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._resize_window(win, acct, type_)
|
||||
self._position_window(win, acct, type_)
|
||||
if gajim.config.get('msgwin-max-state'):
|
||||
win.window.maximize()
|
||||
else:
|
||||
self._resize_window(win, acct, type_)
|
||||
self._position_window(win, acct, type_)
|
||||
|
||||
self._windows[win_key] = win
|
||||
return win
|
||||
|
@ -1020,6 +1024,10 @@ class MessageWindowMgr(gobject.GObject):
|
|||
del self._windows[old_key]
|
||||
win.change_key(old_jid, new_jid, acct)
|
||||
|
||||
def _on_window_state_change(self,widget, event, *args):
|
||||
"track window state"
|
||||
self.win_maximized = (event.new_window_state == gtk.gdk.WINDOW_STATE_MAXIMIZED)
|
||||
|
||||
def _on_window_delete(self, win, event):
|
||||
self.save_state(self._gtk_win_to_msg_win(win))
|
||||
gajim.interface.save_config()
|
||||
|
@ -1076,6 +1084,7 @@ May be useful some day in the future?'''
|
|||
|
||||
def save_state(self, msg_win, width_adjust=0):
|
||||
# Save window size and position
|
||||
max_win_key = 'msgwin-max-state'
|
||||
pos_x_key = 'msgwin-x-position'
|
||||
pos_y_key = 'msgwin-y-position'
|
||||
size_width_key = 'msgwin-width'
|
||||
|
@ -1114,6 +1123,7 @@ May be useful some day in the future?'''
|
|||
gajim.config.set_per('accounts', acct, pos_y_key, y)
|
||||
|
||||
else:
|
||||
gajim.config.set(max_win_key , self.win_maximized )
|
||||
width += width_adjust
|
||||
gajim.config.set(size_width_key, width)
|
||||
gajim.config.set(size_height_key, height)
|
||||
|
|
Loading…
Reference in New Issue