From 3b2bfd01c5ae7f295bbf27b82b122d650c97a914 Mon Sep 17 00:00:00 2001 From: Alexander Maryanovsky Date: Sun, 16 Aug 2020 17:45:34 +0300 Subject: [PATCH 1/2] Re-render tab when it's disabled state changes. --- gui/chrome_tabs.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gui/chrome_tabs.py b/gui/chrome_tabs.py index d2c18c25b..614599700 100644 --- a/gui/chrome_tabs.py +++ b/gui/chrome_tabs.py @@ -367,7 +367,7 @@ class _TabRenderer: width = max(width, self.min_width) height = max(height, self.min_height) - self.disabled = False + self._disabled = False self.baseText = text self.extraText = '' self.tab_size = (width, height) @@ -383,6 +383,18 @@ class _TabRenderer: self.position = (0, 0) # Not used internally for rendering - helper for tab container self.InitTab() + @property + def disabled(self): + return self._disabled + + @disabled.setter + def disabled(self, value): + if value == self._disabled: # Avoid unnecessary re-rendering + return + + self._disabled = value + self._Render() + @property def text(self): return self.baseText + self.extraText From 0d2ad6eac21fd440844b9b16a59f5d3d8577f25e Mon Sep 17 00:00:00 2001 From: Alexander Maryanovsky Date: Sun, 16 Aug 2020 18:00:01 +0300 Subject: [PATCH 2/2] No longer recomputing all tab sizes when a single tab changes its disabled state. --- gui/chrome_tabs.py | 1 - 1 file changed, 1 deletion(-) diff --git a/gui/chrome_tabs.py b/gui/chrome_tabs.py index 614599700..03939a24a 100644 --- a/gui/chrome_tabs.py +++ b/gui/chrome_tabs.py @@ -943,7 +943,6 @@ class _TabsContainer(wx.Panel): tb_renderer = self.tabs[tab] tb_renderer.disabled = disabled - self.AdjustTabsSize() self.Refresh() def GetSelectedTab(self):