ComboBox: Dodge possible surplus disconnects
authorDaniel Boles <dboles@src.gnome.org>
Fri, 1 Sep 2017 19:17:11 +0000 (20:17 +0100)
committerDaniel Boles <dboles@src.gnome.org>
Fri, 1 Sep 2017 19:17:11 +0000 (20:17 +0100)
in case anyone connected any other signal on the model to this ComboBox.

gtk/gtkcombobox.c

index cee696b3f38b5de200369958655e2db95ac37af1..9acb1fbd5f7107900c73861614f37d64df2da510 100644 (file)
@@ -2465,7 +2465,18 @@ gtk_combo_box_unset_model (GtkComboBox *combo_box)
 
   if (priv->model)
     {
-      g_signal_handlers_disconnect_by_data (priv->model, combo_box);
+      g_signal_handlers_disconnect_by_func (priv->model,
+                                            gtk_combo_box_model_row_inserted,
+                                            combo_box);
+      g_signal_handlers_disconnect_by_func (priv->model,
+                                            gtk_combo_box_model_row_deleted,
+                                            combo_box);
+      g_signal_handlers_disconnect_by_func (priv->model,
+                                            gtk_combo_box_model_rows_reordered,
+                                            combo_box);
+      g_signal_handlers_disconnect_by_func (priv->model,
+                                            gtk_combo_box_model_row_changed,
+                                            combo_box);
 
       g_object_unref (priv->model);
       priv->model = NULL;