diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index ede2fba625..a9c59d7ca6 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -1861,10 +1861,10 @@ gtk_combo_box_set_popup_widget (GtkComboBox *combo_box, gtk_window_set_type_hint (GTK_WINDOW (priv->popup_window), GDK_WINDOW_TYPE_HINT_COMBO); - g_signal_connect (GTK_WINDOW (priv->popup_window),"show", + g_signal_connect (priv->popup_window, "show", G_CALLBACK (gtk_combo_box_child_show), combo_box); - g_signal_connect (GTK_WINDOW (priv->popup_window),"hide", + g_signal_connect (priv->popup_window, "hide", G_CALLBACK (gtk_combo_box_child_hide), combo_box); @@ -2792,17 +2792,11 @@ gtk_combo_box_menu_destroy (GtkComboBox *combo_box) { GtkComboBoxPrivate *priv = combo_box->priv; - g_signal_handlers_disconnect_matched (priv->button, - G_SIGNAL_MATCH_DATA, - 0, 0, NULL, - gtk_combo_box_menu_button_press, NULL); - g_signal_handlers_disconnect_matched (priv->button, - G_SIGNAL_MATCH_DATA, - 0, 0, NULL, + g_signal_handlers_disconnect_by_func (priv->button, + gtk_combo_box_menu_button_press, combo_box); + g_signal_handlers_disconnect_by_func (priv->button, gtk_combo_box_button_state_flags_changed, combo_box); - g_signal_handlers_disconnect_matched (priv->popup_widget, - G_SIGNAL_MATCH_DATA, - 0, 0, NULL, + g_signal_handlers_disconnect_by_func (priv->popup_widget, gtk_combo_box_menu_activate, combo_box); /* changing the popup window will unref the menu and the children */ @@ -3069,36 +3063,11 @@ gtk_combo_box_list_destroy (GtkComboBox *combo_box) GtkComboBoxPrivate *priv = combo_box->priv; /* disconnect signals */ - g_signal_handlers_disconnect_matched (priv->tree_view, - G_SIGNAL_MATCH_DATA, - 0, 0, NULL, NULL, combo_box); - g_signal_handlers_disconnect_matched (priv->button, - G_SIGNAL_MATCH_DATA, - 0, 0, NULL, + g_signal_handlers_disconnect_by_data (priv->tree_view, combo_box); + g_signal_handlers_disconnect_by_func (priv->button, gtk_combo_box_list_button_pressed, - NULL); - g_signal_handlers_disconnect_matched (priv->popup_window, - G_SIGNAL_MATCH_DATA, - 0, 0, NULL, - gtk_combo_box_list_button_pressed, - NULL); - g_signal_handlers_disconnect_matched (priv->popup_window, - G_SIGNAL_MATCH_DATA, - 0, 0, NULL, - gtk_combo_box_list_button_released, - NULL); - - g_signal_handlers_disconnect_matched (priv->popup_window, - G_SIGNAL_MATCH_DATA, - 0, 0, NULL, - gtk_combo_box_child_show, - NULL); - - g_signal_handlers_disconnect_matched (priv->popup_window, - G_SIGNAL_MATCH_DATA, - 0, 0, NULL, - gtk_combo_box_child_hide, - NULL); + combo_box); + g_signal_handlers_disconnect_by_data (priv->popup_window, combo_box); if (priv->cell_view) {