# HG changeset patch
# User Laurent Bessard
# Date 1363348155 -3600
# Node ID 30e7571c10d04f481c8b50379fc0a0b4bbe9758a
# Parent  7ca88194ae893cd13afdb8c2a2f3b2a3dcd9218a
Reduced flicker on LogViewer and DebugGraphPanel on Windows

diff -r 7ca88194ae89 -r 30e7571c10d0 controls/DebugVariablePanel.py
--- a/controls/DebugVariablePanel.py	Fri Mar 15 12:07:39 2013 +0100
+++ b/controls/DebugVariablePanel.py	Fri Mar 15 12:49:15 2013 +0100
@@ -690,6 +690,9 @@
             else:
                 self.SetHighlight(HIGHLIGHT_AFTER)
         
+        def OnEraseBackground(self, event):
+            pass
+        
         def OnResize(self, event):
             wx.CallAfter(self.RefreshButtonsState, True)
             event.Skip()
@@ -720,6 +723,7 @@
             self.Bind(wx.EVT_ENTER_WINDOW, self.OnEnter)
             self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave)
             self.Bind(wx.EVT_SIZE, self.OnResize)
+            self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
             self.Bind(wx.EVT_PAINT, self.OnPaint)
             
             self.SetMinSize(wx.Size(0, 25))
@@ -808,6 +812,7 @@
             self.SetBackgroundColour(wx.WHITE)
             self.Bind(wx.EVT_ENTER_WINDOW, self.OnEnter)
             self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave)
+            self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
             self.Bind(wx.EVT_SIZE, self.OnResize)
             
             self.SetMinSize(wx.Size(200, 200))
@@ -1502,6 +1507,8 @@
             self.GraphicsWindow = wx.ScrolledWindow(self, style=wx.HSCROLL|wx.VSCROLL)
             self.GraphicsWindow.SetBackgroundColour(wx.WHITE)
             self.GraphicsWindow.SetDropTarget(DebugVariableDropTarget(self))
+            self.GraphicsWindow.Bind(wx.EVT_ERASE_BACKGROUND, self.OnGraphicsWindowEraseBackground)
+            self.GraphicsWindow.Bind(wx.EVT_PAINT, self.OnGraphicsWindowPaint)
             self.GraphicsWindow.Bind(wx.EVT_SIZE, self.OnGraphicsWindowResize)
             main_sizer.AddWindow(self.GraphicsWindow, 1, flag=wx.GROW)
             
@@ -2219,6 +2226,14 @@
         self.GraphicsWindow.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, 
                 vwidth / SCROLLBAR_UNIT, vheight / SCROLLBAR_UNIT, posx, posy)
     
+    def OnGraphicsWindowEraseBackground(self, event):
+        pass
+    
+    def OnGraphicsWindowPaint(self, event):
+        self.RefreshView()
+        event.Skip()
+    
     def OnGraphicsWindowResize(self, event):
         self.RefreshGraphicsWindowScrollbars()
         event.Skip()
+    
\ No newline at end of file
diff -r 7ca88194ae89 -r 30e7571c10d0 controls/LogViewer.py
--- a/controls/LogViewer.py	Fri Mar 15 12:07:39 2013 +0100
+++ b/controls/LogViewer.py	Fri Mar 15 12:49:15 2013 +0100
@@ -51,6 +51,7 @@
         self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
         self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
         self.Bind(wx.EVT_MOTION, self.OnMotion)
+        self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
         self.Bind(wx.EVT_PAINT, self.OnPaint)
         self.Bind(wx.EVT_SIZE, self.OnResize)
         
@@ -124,6 +125,9 @@
         self.Refresh()
         event.Skip()
     
+    def OnEraseBackground(self, event):
+        pass
+    
     def OnPaint(self, event):
         dc = wx.BufferedPaintDC(self)
         dc.Clear()
@@ -316,6 +320,7 @@
         self.MessagePanel.Bind(wx.EVT_LEFT_UP, self.OnMessagePanelLeftUp)
         self.MessagePanel.Bind(wx.EVT_LEFT_DCLICK, self.OnMessagePanelLeftDCLick)
         self.MessagePanel.Bind(wx.EVT_MOUSEWHEEL, self.OnMessagePanelMouseWheel)
+        self.MessagePanel.Bind(wx.EVT_ERASE_BACKGROUND, self.OnMessagePanelEraseBackground)
         self.MessagePanel.Bind(wx.EVT_PAINT, self.OnMessagePanelPaint)
         self.MessagePanel.Bind(wx.EVT_SIZE, self.OnMessagePanelResize)
         message_panel_sizer.AddWindow(self.MessagePanel, flag=wx.GROW)
@@ -631,6 +636,9 @@
         self.ScrollMessagePanel(event.GetWheelRotation() / event.GetWheelDelta())
         event.Skip()
     
+    def OnMessagePanelEraseBackground(self, event):
+        pass
+    
     def OnMessagePanelPaint(self, event):
         self.RefreshView()
         event.Skip()