diff --git a/invesalius/gui/frame.py b/invesalius/gui/frame.py index fa1907e..458e994 100644 --- a/invesalius/gui/frame.py +++ b/invesalius/gui/frame.py @@ -68,6 +68,7 @@ class Frame(wx.Frame): if sys.platform != 'darwin': self.Maximize() + self.sizeChanged = True #Necessary update AUI (statusBar in special) #when maximized in the Win 7 and XP self.SetSize(self.GetSize()) @@ -114,6 +115,7 @@ class Frame(wx.Frame): Bind normal events from wx (except pubsub related). """ self.Bind(wx.EVT_SIZE, self.OnSize) + self.Bind(wx.EVT_IDLE, self.OnIdle) self.Bind(wx.EVT_MENU, self.OnMenuClick) self.Bind(wx.EVT_CLOSE, self.OnClose) @@ -375,8 +377,17 @@ class Frame(wx.Frame): """ Refresh GUI when frame is resized. """ - Publisher.sendMessage(('ProgressBar Reposition')) evt.Skip() + self.Reposition() + self.sizeChanged = True + + def OnIdle(self, evt): + if self.sizeChanged: + self.Reposition() + + def Reposition(self): + Publisher.sendMessage(('ProgressBar Reposition')) + self.sizeChanged = False def ShowPreferences(self): @@ -691,9 +702,10 @@ class ProgressBar(wx.Gauge): """ Compute new size and position, according to parent resize """ - rect = self.parent.GetFieldRect(2) + rect = self.Parent.GetFieldRect(2) self.SetPosition((rect.x + 2, rect.y + 2)) self.SetSize((rect.width - 4, rect.height - 4)) + self.Show() def SetPercentage(self, value): """ -- libgit2 0.21.2