X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/223d09f6b523aac674ef9b72a883dfa8d37c5d4e..dde11e605346b64d3ae0a39295fb5428298cfa3e:/src/gtk1/textctrl.cpp diff --git a/src/gtk1/textctrl.cpp b/src/gtk1/textctrl.cpp index db100d48ec..1039af2f37 100644 --- a/src/gtk1/textctrl.cpp +++ b/src/gtk1/textctrl.cpp @@ -779,6 +779,20 @@ void wxTextCtrl::OnChar( wxKeyEvent &key_event ) if (GetEventHandler()->ProcessEvent(event)) return; } + if ((key_event.KeyCode() == WXK_RETURN) && !(m_windowStyle & wxTE_MULTILINE)) + { + wxWindow *top_frame = m_parent; + while (top_frame->GetParent() && !(top_frame->GetParent()->m_isFrame)) + top_frame = top_frame->GetParent(); + GtkWindow *window = GTK_WINDOW(top_frame->m_widget); + + if (window->default_widget) + { + gtk_widget_activate (window->default_widget); + return; + } + } + key_event.Skip(); } @@ -931,10 +945,8 @@ void wxTextCtrl::OnInternalIdle() wxCursor cursor = m_cursor; if (g_globalCursor.Ok()) cursor = g_globalCursor; - if (cursor.Ok() && m_currentGdkCursor != cursor) + if (cursor.Ok()) { - m_currentGdkCursor = cursor; - GdkWindow *window = (GdkWindow*) NULL; if (HasFlag(wxTE_MULTILINE)) window = GTK_TEXT(m_text)->text_area; @@ -948,7 +960,7 @@ void wxTextCtrl::OnInternalIdle() cursor = *wxSTANDARD_CURSOR; window = m_widget->window; - if (window) + if ((window) && !(GTK_WIDGET_NO_WINDOW(m_widget))) gdk_window_set_cursor( window, cursor.GetCursor() ); } }