X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/88a7a4e10ed18f81a576dcd866cfbf02bf404c00..4b6930c81303eace9164234a5b5589e1904626eb:/src/gtk/combobox.cpp?ds=sidebyside diff --git a/src/gtk/combobox.cpp b/src/gtk/combobox.cpp index b73a7ad394..8dc1c7a820 100644 --- a/src/gtk/combobox.cpp +++ b/src/gtk/combobox.cpp @@ -16,13 +16,11 @@ #ifndef WX_PRECOMP #include "wx/intl.h" + #include "wx/settings.h" + #include "wx/textctrl.h" // for wxEVT_COMMAND_TEXT_UPDATED + #include "wx/arrstr.h" #endif -#include "wx/settings.h" -#include "wx/arrstr.h" - -#include "wx/textctrl.h" // for wxEVT_COMMAND_TEXT_UPDATED - // We use GtkCombo which has been deprecated since GTK+ 2.3.0 // in favour of GtkComboBox for m_hasVMT) return; + if (combo->GetSelection() == -1) + return; + wxCommandEvent event( wxEVT_COMMAND_COMBOBOX_SELECTED, combo->GetId() ); event.SetInt( combo->GetSelection() ); event.SetString( combo->GetStringSelection() ); @@ -199,6 +200,7 @@ gtkcombobox_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo ) combo->GetEventHandler()->ProcessEvent( event ); } } + #endif //----------------------------------------------------------------------------- @@ -295,7 +297,7 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value, gtk_combo_set_case_sensitive( GTK_COMBO(m_widget), TRUE ); if (style & wxNO_BORDER) - g_object_set( GTK_ENTRY( combo->entry ), "has-frame", FALSE, NULL ); + g_object_set (combo->entry, "has-frame", FALSE, NULL ); GtkWidget *list = combo->list; @@ -347,6 +349,7 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value, g_signal_connect_after (m_widget, "changed", G_CALLBACK (gtkcombobox_changed_callback), this); + } else #endif @@ -370,15 +373,9 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value, this); g_signal_connect_after (entry, "changed", G_CALLBACK (gtkcombo_text_changed_callback), this); - - // This is required for tool bar support - // Doesn't currently work -// wxSize setsize = GetSize(); -// gtk_widget_set_size_request( m_widget, setsize.x, setsize.y ); } - SetBestSize(size); // need this too because this is a wxControlWithItems - + SetInitialSize(size); // need this too because this is a wxControlWithItems return true; } @@ -1327,21 +1324,23 @@ GtkWidget* wxComboBox::GetConnectWidget() return GTK_WIDGET( entry ); } -bool wxComboBox::IsOwnGtkWindow( GdkWindow *window ) +GdkWindow *wxComboBox::GTKGetWindow(wxArrayGdkWindows& windows) const { - GtkEntry *entry = NULL; #ifdef __WXGTK24__ if (!gtk_check_version(2,4,0)) { - entry = GTK_ENTRY( GTK_BIN(m_widget)->child ); - return (window == entry->text_area); + wxUnusedVar(windows); + + return GTK_ENTRY(GTK_BIN(m_widget)->child)->text_area; } else -#endif +#endif // GTK+ 2.4 { - entry = GTK_ENTRY( GTK_COMBO(m_widget)->entry ); - return ( (window == entry->text_area) || - (window == GTK_COMBO(m_widget)->button->window ) ); + windows.push_back(GTK_ENTRY(GTK_COMBO(m_widget)->entry)->text_area); + windows.push_back(GTK_COMBO(m_widget)->button->window); + + // indicate that we return multiple windows in the windows array + return NULL; } }