]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkcomboboxentry.c
Remove deprecated GtkTreeView functions
[~andy/gtk] / gtk / gtkcomboboxentry.c
index eff22d5c4476aa98c91159e338230c0b1d8bbbb1..c63c08561ba35c5c7254e437543f34b2c7030b86 100644 (file)
@@ -17,7 +17,7 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#include <config.h>
+#include "config.h"
 #include <string.h>
 #include "gtkcomboboxentry.h"
 #include "gtkcelllayout.h"
@@ -170,6 +170,7 @@ gtk_combo_box_entry_set_property (GObject      *object,
         break;
 
       default:
+       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
         break;
     }
 }
@@ -290,13 +291,15 @@ gtk_combo_box_entry_contents_changed (GtkEntry *entry,
 {
   GtkComboBox *combo_box = GTK_COMBO_BOX (user_data);
 
-  g_signal_handlers_block_by_func (combo_box,
-                                   gtk_combo_box_entry_active_changed,
-                                   NULL);
-  gtk_combo_box_set_active (combo_box, -1);
-  g_signal_handlers_unblock_by_func (combo_box,
-                                     gtk_combo_box_entry_active_changed,
-                                     NULL);
+  /*
+   *  Fixes regression reported in bug #574059. The old functionality relied on
+   *  bug #572478.  As a bugfix, we now emit the "changed" signal ourselves
+   *  when the selection was already set to -1. 
+   */
+  if (gtk_combo_box_get_active(combo_box) == -1)
+    g_signal_emit_by_name (combo_box, "changed");
+  else 
+    gtk_combo_box_set_active (combo_box, -1);
 }
 
 /* public API */
@@ -306,7 +309,7 @@ gtk_combo_box_entry_contents_changed (GtkEntry *entry,
  *
  * Creates a new #GtkComboBoxEntry which has a #GtkEntry as child. After
  * construction, you should set a model using gtk_combo_box_set_model() and a
- * text_column * using gtk_combo_box_entry_set_text_column().
+ * text column using gtk_combo_box_entry_set_text_column().
  *
  * Return value: A new #GtkComboBoxEntry.
  *
@@ -365,9 +368,10 @@ void
 gtk_combo_box_entry_set_text_column (GtkComboBoxEntry *entry_box,
                                      gint              text_column)
 {
+  GtkTreeModel *model = gtk_combo_box_get_model (GTK_COMBO_BOX (entry_box));
+
   g_return_if_fail (text_column >= 0);
-  g_return_if_fail (text_column < gtk_tree_model_get_n_columns (gtk_combo_box_get_model (GTK_COMBO_BOX (entry_box))));
-  g_return_if_fail (entry_box->priv->text_column == -1);
+  g_return_if_fail (model == NULL || text_column < gtk_tree_model_get_n_columns (model));
 
   entry_box->priv->text_column = text_column;