From 3d8b7d14dbdb355389f2c61a97c1c453d2a361f6 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 15 Jun 2004 05:12:27 +0000 Subject: [PATCH] =?UTF-8?q?Make=20GtkComboBox=20work=20without=20model.=20?= =?UTF-8?q?(#144198,=20Mariano=20Su=C3=A1rez-Alvarez)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tue Jun 15 01:10:32 2004 Matthias Clasen * gtk/gtkcombobox.c: Make GtkComboBox work without model. (#144198, Mariano Suárez-Alvarez) --- ChangeLog | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ ChangeLog.pre-2-6 | 5 +++++ ChangeLog.pre-2-8 | 5 +++++ gtk/gtkcombobox.c | 20 ++++++++++++++------ 5 files changed, 34 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 32d55a534d..f61cc95ea8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Jun 15 01:10:32 2004 Matthias Clasen + + * gtk/gtkcombobox.c: Make GtkComboBox work without model. + (#144198, Mariano Suárez-Alvarez) + Fri Jun 11 22:05:56 2004 Matthias Clasen * gtk/gtkfilechooserdefault.c: Don't use diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 32d55a534d..f61cc95ea8 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +Tue Jun 15 01:10:32 2004 Matthias Clasen + + * gtk/gtkcombobox.c: Make GtkComboBox work without model. + (#144198, Mariano Suárez-Alvarez) + Fri Jun 11 22:05:56 2004 Matthias Clasen * gtk/gtkfilechooserdefault.c: Don't use diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 32d55a534d..f61cc95ea8 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +Tue Jun 15 01:10:32 2004 Matthias Clasen + + * gtk/gtkcombobox.c: Make GtkComboBox work without model. + (#144198, Mariano Suárez-Alvarez) + Fri Jun 11 22:05:56 2004 Matthias Clasen * gtk/gtkfilechooserdefault.c: Don't use diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 32d55a534d..f61cc95ea8 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +Tue Jun 15 01:10:32 2004 Matthias Clasen + + * gtk/gtkcombobox.c: Make GtkComboBox work without model. + (#144198, Mariano Suárez-Alvarez) + Fri Jun 11 22:05:56 2004 Matthias Clasen * gtk/gtkfilechooserdefault.c: Don't use diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index a21688298c..4f0d1d257f 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -2608,10 +2608,13 @@ gtk_combo_box_key_press (GtkWidget *widget, { GtkComboBox *combo_box = GTK_COMBO_BOX (data); guint state = event->state & gtk_accelerator_get_default_mod_mask (); - gint items = gtk_tree_model_iter_n_children (combo_box->priv->model, NULL); + gint items = 0; gint index = gtk_combo_box_get_active (combo_box); gint new_index; + if (combo_box->priv->model) + items = gtk_tree_model_iter_n_children (combo_box->priv->model, NULL); + if ((event->keyval == GDK_Down || event->keyval == GDK_KP_Down) && state == GDK_MOD1_MASK) { @@ -2657,8 +2660,9 @@ gtk_combo_box_key_press (GtkWidget *widget, default: return FALSE; } - - gtk_combo_box_set_active (combo_box, CLAMP (new_index, 0, items - 1)); + + if (items > 0) + gtk_combo_box_set_active (combo_box, CLAMP (new_index, 0, items - 1)); return TRUE; } @@ -2706,12 +2710,16 @@ gtk_combo_box_list_key_press (GtkWidget *widget, if (event->keyval == GDK_Return || event->keyval == GDK_KP_Enter || event->keyval == GDK_space || event->keyval == GDK_KP_Space) { - gboolean ret; + gboolean ret = FALSE; GtkTreeIter iter; GtkTreeModel *model = NULL; - GtkTreeSelection *sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (combo_box->priv->tree_view)); - ret = gtk_tree_selection_get_selected (sel, &model, &iter); + if (combo_box->priv->model) + { + GtkTreeSelection *sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (combo_box->priv->tree_view)); + + ret = gtk_tree_selection_get_selected (sel, &model, &iter); + } if (ret) { GtkTreePath *path;