[gtk+] Don't add a second cell renderer
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Don't add a second cell renderer
- Date: Mon, 18 Oct 2010 12:15:17 +0000 (UTC)
commit b613cc64786a95ea069d3d308906133165062315
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Oct 18 08:13:41 2010 -0400
Don't add a second cell renderer
When has-entry is TRUE, GtkComboBox already adds a cell renderer
for the text column, so avoid adding a second one in GtkComboBoxText.
https://bugzilla.gnome.org/show_bug.cgi?id=632381
gtk/gtkcomboboxtext.c | 39 ++++++++++++++++++++++++++++++---------
1 files changed, 30 insertions(+), 9 deletions(-)
---
diff --git a/gtk/gtkcomboboxtext.c b/gtk/gtkcomboboxtext.c
index cd4a0b0..2af9d3f 100644
--- a/gtk/gtkcomboboxtext.c
+++ b/gtk/gtkcomboboxtext.c
@@ -43,28 +43,50 @@
G_DEFINE_TYPE (GtkComboBoxText, gtk_combo_box_text, GTK_TYPE_COMBO_BOX);
-static void
-gtk_combo_box_text_class_init (GtkComboBoxTextClass *klass)
+static GObject *
+gtk_combo_box_text_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
{
+ GObject *object;
+
+ object = G_OBJECT_CLASS (gtk_combo_box_text_parent_class)->constructor
+ (type, n_construct_properties, construct_properties);
+
+ if (!gtk_combo_box_get_has_entry (GTK_COMBO_BOX (object)))
+ {
+ GtkCellRenderer *cell;
+
+ cell = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (object), cell, TRUE);
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (object), cell,
+ "text", 0,
+ NULL);
+ }
+
+ return object;
}
static void
gtk_combo_box_text_init (GtkComboBoxText *combo_box)
{
GtkListStore *store;
- GtkCellRenderer *cell;
store = gtk_list_store_new (1, G_TYPE_STRING);
gtk_combo_box_set_model (GTK_COMBO_BOX (combo_box), GTK_TREE_MODEL (store));
g_object_unref (store);
+}
- cell = gtk_cell_renderer_text_new ();
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), cell, TRUE);
- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), cell,
- "text", 0,
- NULL);
+static void
+gtk_combo_box_text_class_init (GtkComboBoxTextClass *klass)
+{
+ GObjectClass *object_class;
+
+ object_class = (GObjectClass *)klass;
+ object_class->constructor = gtk_combo_box_text_constructor;
}
+
/**
* gtk_combo_box_text_new:
*
@@ -83,7 +105,6 @@ gtk_combo_box_text_new (void)
NULL);
}
-
/**
* gtk_combo_box_text_new_with_entry:
*
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]