Fix #2072 (only resize a tab if the size changed since the last display)
This commit is contained in:
parent
ea935ded09
commit
b46f0f5e26
9 changed files with 17 additions and 12 deletions
|
@ -1582,9 +1582,7 @@ class Core(object):
|
|||
self.resize_global_information_win()
|
||||
with g_lock:
|
||||
for tab in self.tabs:
|
||||
if config.get('lazy_resize', True):
|
||||
tab.need_resize = True
|
||||
else:
|
||||
if not config.get('lazy_resize', True):
|
||||
tab.resize()
|
||||
if self.tabs:
|
||||
self.full_screen_redraw()
|
||||
|
|
|
@ -95,10 +95,10 @@ class Tab(object):
|
|||
self._state = 'normal'
|
||||
self._prev_state = None
|
||||
|
||||
self.need_resize = False
|
||||
self.key_func = {} # each tab should add their keys in there
|
||||
# and use them in on_input
|
||||
self.commands = {} # and their own commands
|
||||
self._saved_size = (-1, -1)
|
||||
|
||||
|
||||
@property
|
||||
|
@ -184,6 +184,13 @@ class Tab(object):
|
|||
elif not self._prev_state:
|
||||
self._state = 'normal'
|
||||
|
||||
def push_size(self):
|
||||
self._saved_size = (self.height, self.width)
|
||||
|
||||
@property
|
||||
def need_resize(self):
|
||||
return self._saved_size != (self.height, self.width)
|
||||
|
||||
@staticmethod
|
||||
def resize(scr):
|
||||
with g_lock:
|
||||
|
|
|
@ -260,7 +260,6 @@ class ConversationTab(ChatTab):
|
|||
callback=callback)
|
||||
|
||||
def resize(self):
|
||||
self.need_resize = False
|
||||
if self.size.tab_degrade_y:
|
||||
display_bar = False
|
||||
info_win_height = 0
|
||||
|
@ -283,6 +282,7 @@ class ConversationTab(ChatTab):
|
|||
- tab_win_height,
|
||||
0)
|
||||
self.input.resize(1, self.width, self.height - 1, 0)
|
||||
self.push_size()
|
||||
|
||||
def refresh(self):
|
||||
if self.need_resize:
|
||||
|
|
|
@ -64,7 +64,6 @@ class DataFormsTab(Tab):
|
|||
self.form_win.on_input(key)
|
||||
|
||||
def resize(self):
|
||||
self.need_resize = False
|
||||
self.topic_win.resize(1, self.width, 0, 0)
|
||||
self.form_win.resize(self.height - 3 - Tab.tab_win_height(),
|
||||
self.width, 1, 0)
|
||||
|
@ -72,6 +71,7 @@ class DataFormsTab(Tab):
|
|||
self.help_win_dyn.resize(1, self.width,
|
||||
self.height - 2 - Tab.tab_win_height(), 0)
|
||||
self.lines = []
|
||||
self.push_size()
|
||||
|
||||
def refresh(self):
|
||||
if self.need_resize:
|
||||
|
|
|
@ -77,7 +77,6 @@ class MucListTab(Tab):
|
|||
self.input.refresh()
|
||||
|
||||
def resize(self):
|
||||
self.need_resize = False
|
||||
if self.size.tab_degrade_y:
|
||||
info_win_height = 0
|
||||
tab_win_height = 0
|
||||
|
@ -99,6 +98,7 @@ class MucListTab(Tab):
|
|||
self.listview.resize(self.height - 3 - info_win_height - tab_win_height,
|
||||
self.width, 1, 0)
|
||||
self.input.resize(1, self.width, self.height-1, 0)
|
||||
self.push_size()
|
||||
|
||||
def on_slash(self):
|
||||
"""
|
||||
|
|
|
@ -796,7 +796,7 @@ class MucTab(ChatTab):
|
|||
"""
|
||||
Resize the whole window. i.e. all its sub-windows
|
||||
"""
|
||||
self.need_resize = False
|
||||
log.debug('RESIZE PLS')
|
||||
if config.get("hide_user_list", False) or self.size.tab_degrade_x:
|
||||
display_user_list = False
|
||||
text_width = self.width
|
||||
|
@ -833,6 +833,7 @@ class MucTab(ChatTab):
|
|||
- tab_win_height,
|
||||
0)
|
||||
self.input.resize(1, self.width, self.height-1, 0)
|
||||
self.push_size()
|
||||
|
||||
def refresh(self):
|
||||
if self.need_resize:
|
||||
|
|
|
@ -237,8 +237,6 @@ class PrivateTab(ChatTab):
|
|||
self.parent_muc.command_info(user)
|
||||
|
||||
def resize(self):
|
||||
self.need_resize = False
|
||||
|
||||
if self.size.tab_degrade_y:
|
||||
info_win_height = 0
|
||||
tab_win_height = 0
|
||||
|
@ -254,6 +252,7 @@ class PrivateTab(ChatTab):
|
|||
- tab_win_height,
|
||||
0)
|
||||
self.input.resize(1, self.width, self.height-1, 0)
|
||||
self.push_size()
|
||||
|
||||
def refresh(self):
|
||||
if self.need_resize:
|
||||
|
|
|
@ -266,7 +266,6 @@ class RosterInfoTab(Tab):
|
|||
self.core.command_last_activity(jid)
|
||||
|
||||
def resize(self):
|
||||
self.need_resize = False
|
||||
if self.size.tab_degrade_x:
|
||||
display_info = False
|
||||
roster_width = self.width
|
||||
|
@ -302,6 +301,7 @@ class RosterInfoTab(Tab):
|
|||
roster_width, 0, 0)
|
||||
self.input.resize(1, self.width, self.height-1, 0)
|
||||
self.default_help_message.resize(1, self.width, self.height-1, 0)
|
||||
self.push_size()
|
||||
|
||||
def completion(self):
|
||||
# Check if we are entering a command (with the '/' key)
|
||||
|
|
|
@ -164,7 +164,6 @@ class XMLTab(Tab):
|
|||
self.core.close_tab()
|
||||
|
||||
def resize(self):
|
||||
self.need_resize = False
|
||||
if self.size.tab_degrade_y:
|
||||
info_win_size = 0
|
||||
tab_win_height = 0
|
||||
|
@ -180,6 +179,7 @@ class XMLTab(Tab):
|
|||
- tab_win_height,
|
||||
0)
|
||||
self.input.resize(1, self.width, self.height-1, 0)
|
||||
self.push_size()
|
||||
|
||||
def refresh(self):
|
||||
if self.need_resize:
|
||||
|
|
Loading…
Reference in a new issue