Try to flicker less when redrawing lists
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user