Reorder what happens when a button is pressed so if the user's event

handler blocks it won't leave the buttonbar in a funny state when it
finally returns.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@44571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2007-02-26 23:23:57 +00:00
parent f1cafba603
commit d6b9ff1c54

View File

@@ -1584,7 +1584,7 @@ class ButtonPanel(wx.PyPanel):
def OnPaint(self, event):
""" Handles the wx.EVT_PAINT event for ButtonPanel. """
dc = wx.BufferedPaintDC(self)
rect = self.GetClientRect()
@@ -1744,7 +1744,7 @@ class ButtonPanel(wx.PyPanel):
def OnMouseMove(self, event):
""" Handles the wx.EVT_MOTION event for ButtonPanel. """
# Check to see if we are hovering a button
tabId, flags = self.HitTest(event.GetPosition())
@@ -1808,21 +1808,21 @@ class ButtonPanel(wx.PyPanel):
btn.SetFocus(False)
if hit.GetStatus() == "Pressed":
# Fire a button click event
btnEvent = wx.CommandEvent(wx.wxEVT_COMMAND_BUTTON_CLICKED, hit.GetId())
self.GetEventHandler().ProcessEvent(btnEvent)
hit.SetToggled(not hit.GetToggled())
# Update the button status to be hovered
hit.SetStatus("Hover")
hit.SetFocus()
self._currentButton = tabId
# Fire a button click event
btnEvent = wx.CommandEvent(wx.wxEVT_COMMAND_BUTTON_CLICKED, hit.GetId())
self.GetEventHandler().ProcessEvent(btnEvent)
def OnMouseLeave(self, event):
""" Handles the wx.EVT_LEAVE_WINDOW event for ButtonPanel. """
# Reset all buttons statuses
for btn in self._vButtons:
if not btn.IsEnabled():