#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 <GTK2.4 runtime
// We also use GtkList
if (!combo->m_hasVMT) return;
+ if (combo->GetSelection() == -1)
+ return;
+
wxCommandEvent event( wxEVT_COMMAND_COMBOBOX_SELECTED, combo->GetId() );
event.SetInt( combo->GetSelection() );
event.SetString( combo->GetStringSelection() );
// 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;
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;
}
}