FIX: handle mouseCaptureLost in common ctrls

Change-Id: Ifde2406911a628fa61acf41c0e7a5120612d73bf
This commit is contained in:
chunmao.guo authored and Lane.Wei committed 2022-10-20 19:34:37 +08:00
1 parent e2d10baea0
commit 3d7d2badf7
6 files changed
+42 -3

No files matched your search

+9 -1
View File
@@ -7,6 +7,7 @@ BEGIN_EVENT_TABLE(Button, StaticBox)
EVT_LEFT_DOWN(Button::mouseDown)
EVT_LEFT_UP(Button::mouseReleased)
EVT_MOUSE_CAPTURE_LOST(Button::mouseCaptureLost)
EVT_KEY_DOWN(Button::keyDownUp)
EVT_KEY_UP(Button::keyDownUp)
@@ -242,12 +243,19 @@ void Button::mouseReleased(wxMouseEvent& event)
event.Skip();
if (pressedDown) {
pressedDown = false;
ReleaseMouse();
if (HasCapture())
ReleaseMouse();
if (wxRect({0, 0}, GetSize()).Contains(event.GetPosition()))
sendButtonEvent();
}
}
void Button::mouseCaptureLost(wxMouseCaptureLostEvent &event)
{
wxMouseEvent evt;
mouseReleased(evt);
}
void Button::keyDownUp(wxKeyEvent &event)
{
if (event.GetKeyCode() == WXK_SPACE || event.GetKeyCode() == WXK_RETURN) {