From cc8def1cf5179675d5e0f1efd3aa68f9bfd3e82a Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 12 Aug 2019 15:13:51 +0300 Subject: [PATCH] Try to flicker less when redrawing lists --- gui/chrome_tabs.py | 10 ++++------ gui/display.py | 12 ++++++++++-- gui/errorDialog.py | 3 +-- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/gui/chrome_tabs.py b/gui/chrome_tabs.py index 792a5be73..e0aa659b6 100644 --- a/gui/chrome_tabs.py +++ b/gui/chrome_tabs.py @@ -1333,14 +1333,12 @@ class _TabsContainer(wx.Panel): if not self.preview_tab.GetSelected(): page = self.Parent.GetPage(self.GetTabIndex(self.preview_tab)) if page.Snapshot(): - self.preview_wnd = PFNotebookPagePreview( - self, - (mposx + 3, mposy + 3), - page.Snapshot(), - self.preview_tab.text) + self, + (mposx + 3, mposy + 3), + page.Snapshot(), + self.preview_tab.text) self.preview_wnd.Show() - event.Skip() diff --git a/gui/display.py b/gui/display.py index e59597827..0abaaee08 100644 --- a/gui/display.py +++ b/gui/display.py @@ -185,8 +185,10 @@ class Display(wx.ListCtrl): self.Select(row, True) def populate(self, stuff): - if stuff is not None: + wasFrozen = self.IsFrozen() + if not wasFrozen: + self.Freeze() listItemCount = self.GetItemCount() stuffItemCount = len(stuff) @@ -203,11 +205,15 @@ class Display(wx.ListCtrl): for i in range(listItemCount - stuffItemCount): self.DeleteItem(self.getLastItem()) self.Refresh() + if not wasFrozen: + self.Thaw() def refresh(self, stuff): if stuff is None: return - + wasFrozen = self.IsFrozen() + if not wasFrozen: + self.Freeze() item = -1 for id_, st in enumerate(stuff): @@ -259,6 +265,8 @@ class Display(wx.ListCtrl): self.SetColumnWidth(i, headerWidth) else: self.SetColumnWidth(i, col.size) + if not wasFrozen: + self.Thaw() def update(self, stuff): self.populate(stuff) diff --git a/gui/errorDialog.py b/gui/errorDialog.py index a2744746b..498a1ccda 100644 --- a/gui/errorDialog.py +++ b/gui/errorDialog.py @@ -48,6 +48,7 @@ class ErrorHandler: app = wx.App(False) cls.__frame = ErrorFrame(None) cls.__frame.addException("".join(t)) + cls.__frame.Show() app.MainLoop() sys.exit() else: @@ -121,7 +122,5 @@ class ErrorFrame(AuxiliaryFrame): self.Centre(wx.BOTH) - self.Show() - def addException(self, text): self.errorTextCtrl.AppendText("\n{}\n\n{}".format("#" * 20, text))