]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/button.cpp
Disable some wxWebView tests that fail on the buildbot but not locally.
[wxWidgets.git] / src / msw / button.cpp
index e87917bd6420e870c91974721c93c80c28490916..3e9bfb5739e9358e37df4c1b06e6d2c0cd8deedf 100644 (file)
 // macros
 // ----------------------------------------------------------------------------
 
 // macros
 // ----------------------------------------------------------------------------
 
+BEGIN_EVENT_TABLE(wxButton, wxButtonBase)
+    EVT_CHAR_HOOK(wxButton::OnCharHook)
+END_EVENT_TABLE()
+
 // ============================================================================
 // implementation
 // ============================================================================
 // ============================================================================
 // implementation
 // ============================================================================
@@ -370,6 +374,25 @@ void wxButton::Command(wxCommandEvent & event)
 // event/message handlers
 // ----------------------------------------------------------------------------
 
 // event/message handlers
 // ----------------------------------------------------------------------------
 
+void wxButton::OnCharHook(wxKeyEvent& event)
+{
+    // We want to ensure that the button always processes Enter key events
+    // itself, even if it's inside some control that normally takes over them
+    // (this happens when the button is part of an in-place editor control for
+    // example).
+    if ( event.GetKeyCode() == WXK_RETURN )
+    {
+        // We should ensure that subsequent key events are still generated even
+        // if we did handle EVT_CHAR_HOOK (normally this would suppress their
+        // generation).
+        event.DoAllowNextEvent();
+    }
+    else
+    {
+        event.Skip();
+    }
+}
+
 bool wxButton::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
 {
     bool processed = false;
 bool wxButton::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
 {
     bool processed = false;