X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/159b66c02a8f1c724d1af3c768ad5d90f4c8a0e2..ee3510132b8b4160f848bd4f502a6f5315f90dbc:/src/gtk1/combobox.cpp diff --git a/src/gtk1/combobox.cpp b/src/gtk1/combobox.cpp index 26e78469de..de35777f0b 100644 --- a/src/gtk1/combobox.cpp +++ b/src/gtk1/combobox.cpp @@ -154,6 +154,8 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value, } m_parent->DoAddChild( this ); + + m_focusWidget = GTK_COMBO(m_widget)->entry; PostCreation(); @@ -176,9 +178,15 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value, if (new_size.y > size_best.y) new_size.y = size_best.y; if ((new_size.x != size.x) || (new_size.y != size.y)) + { SetSize( new_size.x, new_size.y ); + + // This is required for tool bar support + gtk_widget_set_usize( m_widget, new_size.x, new_size.y ); + } - SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_WINDOW ) ); + + SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) ); SetForegroundColour( parent->GetForegroundColour() ); Show( TRUE ); @@ -285,7 +293,7 @@ wxClientData* wxComboBox::GetClientObject( int n ) { wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, wxT("invalid combobox") ); - wxNode *node = m_clientDataList.Nth( n ); + wxNode *node = m_clientObjectList.Nth( n ); if (!node) return (wxClientData*) NULL; return (wxClientData*) node->Data(); @@ -607,7 +615,26 @@ void wxComboBox::OnChar( wxKeyEvent &event ) event.SetEventObject( this ); GetEventHandler()->ProcessEvent( event ); } - //else: do nothing, this will open the listbox + else + { + // This will invoke the dialog default action, such + // as the clicking the default button. + + wxWindow *top_frame = m_parent; + while (top_frame->GetParent() && !(top_frame->IsTopLevel())) + top_frame = top_frame->GetParent(); + + if (top_frame && GTK_IS_WINDOW(top_frame->m_widget)) + { + GtkWindow *window = GTK_WINDOW(top_frame->m_widget); + + if (window->default_widget) + { + gtk_widget_activate (window->default_widget); + return; + } + } + } } }