* Boston, MA 02111-1307, USA.
*/
-#include <config.h>
+#include "config.h"
#include <string.h>
#include "gtkcomboboxentry.h"
#include "gtkcelllayout.h"
break;
default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
{
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 */
*
* 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.
*
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;