X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f8f9ec5563b78655cfb49f501f0fda306e831642..e1983ab58804a0e32ab2d832ded0349af1cc0476:/src/gtk1/spinctrl.cpp diff --git a/src/gtk1/spinctrl.cpp b/src/gtk1/spinctrl.cpp index ff4ee9faeb..a15f637dda 100644 --- a/src/gtk1/spinctrl.cpp +++ b/src/gtk1/spinctrl.cpp @@ -271,7 +271,7 @@ void wxSpinCtrl::OnChar( wxKeyEvent &event ) if (event.GetKeyCode() == WXK_RETURN) { wxWindow *top_frame = m_parent; - while (top_frame->GetParent() && !(top_frame->GetParent()->IsTopLevel())) + while (top_frame->GetParent() && !(top_frame->IsTopLevel())) top_frame = top_frame->GetParent(); if ( GTK_IS_WINDOW(top_frame->m_widget) ) @@ -281,7 +281,7 @@ void wxSpinCtrl::OnChar( wxKeyEvent &event ) { GtkWidget *widgetDef = window->default_widget; - if ( widgetDef && GTK_IS_WINDOW(widgetDef) ) + if ( widgetDef ) { gtk_widget_activate(widgetDef); return; @@ -290,6 +290,16 @@ void wxSpinCtrl::OnChar( wxKeyEvent &event ) } } + if ((event.GetKeyCode() == WXK_RETURN) && (m_windowStyle & wxPROCESS_ENTER)) + { + wxCommandEvent evt( wxEVT_COMMAND_TEXT_ENTER, m_windowId ); + evt.SetEventObject(this); + GtkSpinButton *gsb = GTK_SPIN_BUTTON(m_widget); + wxString val = wxGTK_CONV_BACK( gtk_entry_get_text( &gsb->entry ) ); + evt.SetString( val ); + if (GetEventHandler()->ProcessEvent(evt)) return; + } + event.Skip(); }