]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/combobox.cpp
Couple more Unicode fixes.
[wxWidgets.git] / src / gtk / combobox.cpp
index 366ea1b8e163e4d65fa8a5cbb2dd22383f0ab9af..20718dfae39cdb4da9be9a2883f05c6121b9d345 100644 (file)
@@ -422,8 +422,12 @@ void wxComboBox::SetSelection( int n )
 {
     wxCHECK_RET( m_widget != NULL, _T("invalid combobox") );
 
 {
     wxCHECK_RET( m_widget != NULL, _T("invalid combobox") );
 
+    DisableEvents();
+
     GtkWidget *list = GTK_COMBO(m_widget)->list;
     gtk_list_select_item( GTK_LIST(list), n );
     GtkWidget *list = GTK_COMBO(m_widget)->list;
     gtk_list_select_item( GTK_LIST(list), n );
+
+    EnableEvents();
 }
 
 void wxComboBox::SetStringSelection( const wxString &string )
 }
 
 void wxComboBox::SetStringSelection( const wxString &string )
@@ -586,6 +590,32 @@ void wxComboBox::OnChar( wxKeyEvent &event )
     event.Skip();
 }
 
     event.Skip();
 }
 
+void wxComboBox::DisableEvents()
+{
+    GtkList *list = GTK_LIST( GTK_COMBO(m_widget)->list );
+    GList *child = list->children;
+    while (child)
+    {
+        gtk_signal_disconnect_by_func( GTK_OBJECT(child->data), 
+          GTK_SIGNAL_FUNC(gtk_combo_clicked_callback), (gpointer)this );
+
+        child = child->next;
+    }
+}
+
+void wxComboBox::EnableEvents()
+{
+    GtkList *list = GTK_LIST( GTK_COMBO(m_widget)->list );
+    GList *child = list->children;
+    while (child)
+    {
+        gtk_signal_connect( GTK_OBJECT(child->data), "select",
+          GTK_SIGNAL_FUNC(gtk_combo_clicked_callback), (gpointer)this );
+
+        child = child->next;
+    }
+}
+
 void wxComboBox::OnSize( wxSizeEvent &event )
 {
     event.Skip();
 void wxComboBox::OnSize( wxSizeEvent &event )
 {
     event.Skip();