]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/combobox.cpp
fixed another place where wxString was used as bool
[wxWidgets.git] / src / gtk / combobox.cpp
index e2d7b48e247888938cbf7e3d39f92f7e66f98400..1a4e40ce0f180a690c82d40264e2dd2b7fffbc50 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/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() );
@@ -199,6 +200,7 @@ gtkcombobox_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
     combo->GetEventHandler()->ProcessEvent( event );
 }
 }
+
 #endif
 
 //-----------------------------------------------------------------------------
@@ -249,7 +251,6 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value,
 {
     m_ignoreNextUpdate = false;
     m_needParent = true;
-    m_acceptsFocus = true;
     m_prevSelection = 0;
 
     if (!PreCreation( parent, pos, size ) ||
@@ -347,6 +348,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 +372,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 +1323,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;
     }
 }