]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/combobox.cpp
correct access for virtual
[wxWidgets.git] / src / gtk / combobox.cpp
index b73a7ad394fcb2b65438cad776f2ae97cb9eb6ce..1f39a8f9ad47b04584e4301673327b793f88c562 100644 (file)
 
 #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
@@ -192,6 +190,9 @@ gtkcombobox_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
 
     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() );
@@ -295,7 +296,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;
 
@@ -1327,21 +1328,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;
     }
 }