From 261a09c46a393463ebd4fe8d5c821f6bfcb2d5a3 Mon Sep 17 00:00:00 2001 From: Duane Johnson Date: Mon, 7 Nov 2011 14:38:57 -0600 Subject: [PATCH] Fixed that the background was repainted as white instead of transparent --- bufferedcanvas.py | 2 ++ xybuttons.py | 7 ++++++- zbuttons.py | 9 ++++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/bufferedcanvas.py b/bufferedcanvas.py index 2054a1b..49d3397 100644 --- a/bufferedcanvas.py +++ b/bufferedcanvas.py @@ -111,6 +111,8 @@ class BufferedCanvas(wx.Panel): Causes the canvas to be updated. """ dc = wx.MemoryDC() + width,height = self.GetClientSizeTuple() + self.backbuffer = wx.EmptyBitmap(width,height) dc.SelectObject(self.backbuffer) dc.BeginDrawing() self.draw(dc) diff --git a/xybuttons.py b/xybuttons.py index 812e36d..4785f72 100644 --- a/xybuttons.py +++ b/xybuttons.py @@ -60,6 +60,7 @@ class XYButtons(BufferedCanvas): self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDown) self.Bind(wx.EVT_MOTION, self.OnMotion) + self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow) parent.Bind(wx.EVT_CHAR_HOOK, self.onKey) def onKey(self, evt): @@ -156,6 +157,11 @@ class XYButtons(BufferedCanvas): else: self.setKeypadIndex(idx) + def OnLeaveWindow(self, evt): + self.quadrant = None + self.concentric = None + self.update() + def drawPartialPie(self, dc, center, r1, r2, angle1, angle2): parts = 64 angle_dist = angle2 - angle1 @@ -205,7 +211,6 @@ class XYButtons(BufferedCanvas): self.drawPartialPie(dc, center, r1-inner_ring_radius, r2-inner_ring_radius, a1+fudge, a2-fudge) def draw(self, dc): - dc.Clear() center = wx.Point(XYButtons.center[0], XYButtons.center[1]) dc.SetPen(wx.Pen(wx.Colour(100,100,100,172), 4)) diff --git a/zbuttons.py b/zbuttons.py index ebf1c7c..472e2fd 100644 --- a/zbuttons.py +++ b/zbuttons.py @@ -29,6 +29,7 @@ class ZButtons(BufferedCanvas): self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDown) self.Bind(wx.EVT_MOTION, self.OnMotion) + self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow) def lookupRange(self, ydist): idx = -1 @@ -79,10 +80,12 @@ class ZButtons(BufferedCanvas): if self.homeCallback: self.homeCallback() - def draw(self, dc): - dc.Clear() - # center = wx.Point(XYButtons.center[0], XYButtons.center[1]) + def OnLeaveWindow(self, evt): + self.range = None + self.direction = None + self.update() + def draw(self, dc): dc.SetPen(wx.Pen(wx.Colour(100,100,100,172), 4)) dc.SetBrush(wx.Brush(wx.Colour(0,0,0,128)))