diff --git a/include/wx/msw/textentry.h b/include/wx/msw/textentry.h index 0b11a2ffa1..a5f2305125 100644 --- a/include/wx/msw/textentry.h +++ b/include/wx/msw/textentry.h @@ -81,6 +81,10 @@ protected: virtual bool DoAutoCompleteCustom(wxTextCompleter *completer) wxOVERRIDE; #endif // wxUSE_OLE + // Helper for wxTE_PROCESS_ENTER handling: activates the default button in + // the dialog containing this control if any. + bool ClickDefaultButtonIfPossible(); + private: // implement this to return the HWND of the EDIT control virtual WXHWND GetEditHWND() const = 0; diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp index 9b62c686a6..888489fd01 100644 --- a/src/msw/textctrl.cpp +++ b/src/msw/textctrl.cpp @@ -2191,10 +2191,9 @@ wxTextCtrl::MSWHandleMessage(WXLRESULT *rc, if ( nMsg == WM_CHAR && !processed && HasFlag(wxTE_PROCESS_ENTER) && - wParam == VK_RETURN && - !wxIsAnyModifierDown() ) + wParam == VK_RETURN ) { - MSWClickButtonIfPossible(MSWGetDefaultButtonFor(this)); + ClickDefaultButtonIfPossible(); processed = true; } diff --git a/src/msw/textentry.cpp b/src/msw/textentry.cpp index 49c7601ddd..7bb30d0702 100644 --- a/src/msw/textentry.cpp +++ b/src/msw/textentry.cpp @@ -1036,4 +1036,15 @@ wxPoint wxTextEntry::DoGetMargins() const return wxPoint(left, top); } +// ---------------------------------------------------------------------------- +// input handling +// ---------------------------------------------------------------------------- + +bool wxTextEntry::ClickDefaultButtonIfPossible() +{ + return !wxIsAnyModifierDown() && + wxWindow::MSWClickButtonIfPossible( + wxWindow::MSWGetDefaultButtonFor(GetEditableWindow())); +} + #endif // wxUSE_TEXTCTRL || wxUSE_COMBOBOX