diff options
author | Javier Jardón <jjardon@gnome.org> | 2010-11-27 04:38:17 +0100 |
---|---|---|
committer | Javier Jardón <jjardon@gnome.org> | 2010-12-04 22:06:02 -0500 |
commit | d351b40a0bd9ee247c5f64858c377378a1eccdbe (patch) | |
tree | 281f93a2ae04b4df90337d7c1fded6c633bfe8f9 /gtk | |
parent | 5fdc140dd8f86bdcd25ec6b596b6c92ddfe661ed (diff) | |
download | gtk+-d351b40a0bd9ee247c5f64858c377378a1eccdbe.tar.gz |
Add internal accessor for GtkEntry->is_cell_renderer
This fixes commit fb3429e5072508570d78dcc7cccb6ef425586bb2
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkcombobox.c | 6 | ||||
-rw-r--r-- | gtk/gtkentry.c | 18 | ||||
-rw-r--r-- | gtk/gtkentryprivate.h | 4 |
3 files changed, 28 insertions, 0 deletions
diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index 0cf07377b0..4775fe930d 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -50,6 +50,7 @@ #include "gtkmarshalers.h" #include "gtkintl.h" +#include "gtkentryprivate.h" #include "gtktreeprivate.h" @@ -1495,6 +1496,10 @@ gtk_combo_box_add (GtkContainer *container, if (priv->has_entry) { + /* this flag is a hack to tell the entry to fill its allocation. + */ + _gtk_entry_set_is_cell_renderer (GTK_ENTRY (widget), TRUE); + g_signal_connect (widget, "changed", G_CALLBACK (gtk_combo_box_entry_contents_changed), combo_box); @@ -1522,6 +1527,7 @@ gtk_combo_box_remove (GtkContainer *container, g_signal_handlers_disconnect_by_func (widget, gtk_combo_box_entry_contents_changed, container); + _gtk_entry_set_is_cell_renderer (GTK_ENTRY (widget), FALSE); } } diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 2e584762e0..4eb96a34e8 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -10216,3 +10216,21 @@ keymap_state_changed (GdkKeymap *keymap, else remove_capslock_feedback (entry); } + +/* + * _gtk_entry_set_is_cell_renderer: + * @entry: a #GtkEntry + * @is_cell_renderer: new value + * + * This is a helper function for GtkComboBox. A GtkEntry in a GtkComboBox + * is supposed to behave like a GtkCellEditable when placed in a combo box. + * + * I.e take up it's allocation and get GtkEntry->is_cell_renderer = TRUE. + * + */ +void +_gtk_entry_set_is_cell_renderer (GtkEntry *entry, + gboolean is_cell_renderer) +{ + entry->priv->is_cell_renderer = is_cell_renderer; +} diff --git a/gtk/gtkentryprivate.h b/gtk/gtkentryprivate.h index 63a5cd02c2..01c2c7d014 100644 --- a/gtk/gtkentryprivate.h +++ b/gtk/gtkentryprivate.h @@ -85,6 +85,10 @@ void _gtk_entry_effective_inner_border (GtkEntry *entry, GtkBorder *border); void _gtk_entry_reset_im_context (GtkEntry *entry); GtkIMContext* _gtk_entry_get_im_context (GtkEntry *entry); +void _gtk_entry_set_is_cell_renderer (GtkEntry *entry, + gboolean is_cell_renderer); + + G_END_DECLS #endif /* __GTK_ENTRY_PRIVATE_H__ */ |