Try to flicker less when redrawing lists

This commit is contained in:
DarkPhoenix
2019-08-12 15:13:51 +03:00
parent bcdefdc4ac
commit cc8def1cf5
3 changed files with 15 additions and 10 deletions

View File

@@ -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()

View File

@@ -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)

View File

@@ -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))