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:
@@ -1584,7 +1584,7 @@ class ButtonPanel(wx.PyPanel):
|
|||||||
|
|
||||||
def OnPaint(self, event):
|
def OnPaint(self, event):
|
||||||
""" Handles the wx.EVT_PAINT event for ButtonPanel. """
|
""" Handles the wx.EVT_PAINT event for ButtonPanel. """
|
||||||
|
|
||||||
dc = wx.BufferedPaintDC(self)
|
dc = wx.BufferedPaintDC(self)
|
||||||
rect = self.GetClientRect()
|
rect = self.GetClientRect()
|
||||||
|
|
||||||
@@ -1744,7 +1744,7 @@ class ButtonPanel(wx.PyPanel):
|
|||||||
|
|
||||||
def OnMouseMove(self, event):
|
def OnMouseMove(self, event):
|
||||||
""" Handles the wx.EVT_MOTION event for ButtonPanel. """
|
""" Handles the wx.EVT_MOTION event for ButtonPanel. """
|
||||||
|
|
||||||
# Check to see if we are hovering a button
|
# Check to see if we are hovering a button
|
||||||
tabId, flags = self.HitTest(event.GetPosition())
|
tabId, flags = self.HitTest(event.GetPosition())
|
||||||
|
|
||||||
@@ -1808,21 +1808,21 @@ class ButtonPanel(wx.PyPanel):
|
|||||||
btn.SetFocus(False)
|
btn.SetFocus(False)
|
||||||
|
|
||||||
if hit.GetStatus() == "Pressed":
|
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())
|
hit.SetToggled(not hit.GetToggled())
|
||||||
|
|
||||||
# Update the button status to be hovered
|
# Update the button status to be hovered
|
||||||
hit.SetStatus("Hover")
|
hit.SetStatus("Hover")
|
||||||
hit.SetFocus()
|
hit.SetFocus()
|
||||||
self._currentButton = tabId
|
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):
|
def OnMouseLeave(self, event):
|
||||||
""" Handles the wx.EVT_LEAVE_WINDOW event for ButtonPanel. """
|
""" Handles the wx.EVT_LEAVE_WINDOW event for ButtonPanel. """
|
||||||
|
|
||||||
# Reset all buttons statuses
|
# Reset all buttons statuses
|
||||||
for btn in self._vButtons:
|
for btn in self._vButtons:
|
||||||
if not btn.IsEnabled():
|
if not btn.IsEnabled():
|
||||||
|
Reference in New Issue
Block a user