From 1d45cbd83155e4df2bbbf61230ea4f09bb44dde6 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 16 Jul 2004 21:13:21 +0000 Subject: [PATCH] Make scrolling work if no item is selected. (gtk_cell_editable_key_press): 2004-07-16 Matthias Clasen * gtk/gtkcombobox.c (gtk_combo_box_scroll_event): Make scrolling work if no item is selected. (gtk_cell_editable_key_press): Don't eat space. --- ChangeLog | 4 ++++ ChangeLog.pre-2-10 | 4 ++++ ChangeLog.pre-2-6 | 4 ++++ ChangeLog.pre-2-8 | 4 ++++ gtk/gtkcombobox.c | 44 ++++++++++++++++++-------------------------- 5 files changed, 34 insertions(+), 26 deletions(-) diff --git a/ChangeLog b/ChangeLog index 452243d8f2..aece06a44e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2004-07-16 Matthias Clasen + * gtk/gtkcombobox.c (gtk_combo_box_scroll_event): Make + scrolling work if no item is selected. + (gtk_cell_editable_key_press): Don't eat space. + Add a combo box cell renderer (#139347, Lorenzo Gil Sanchez) * gtk/gtkcellrenderercombo.[hc]: New Files. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 452243d8f2..aece06a44e 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,9 @@ 2004-07-16 Matthias Clasen + * gtk/gtkcombobox.c (gtk_combo_box_scroll_event): Make + scrolling work if no item is selected. + (gtk_cell_editable_key_press): Don't eat space. + Add a combo box cell renderer (#139347, Lorenzo Gil Sanchez) * gtk/gtkcellrenderercombo.[hc]: New Files. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 452243d8f2..aece06a44e 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,5 +1,9 @@ 2004-07-16 Matthias Clasen + * gtk/gtkcombobox.c (gtk_combo_box_scroll_event): Make + scrolling work if no item is selected. + (gtk_cell_editable_key_press): Don't eat space. + Add a combo box cell renderer (#139347, Lorenzo Gil Sanchez) * gtk/gtkcellrenderercombo.[hc]: New Files. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 452243d8f2..aece06a44e 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,5 +1,9 @@ 2004-07-16 Matthias Clasen + * gtk/gtkcombobox.c (gtk_combo_box_scroll_event): Make + scrolling work if no item is selected. + (gtk_cell_editable_key_press): Don't eat space. + Add a combo box cell renderer (#139347, Lorenzo Gil Sanchez) * gtk/gtkcellrenderercombo.[hc]: New Files. diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index 8471f74f3d..a98d5145fb 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -1886,29 +1886,26 @@ gtk_combo_box_scroll_event (GtkWidget *widget, index = gtk_combo_box_get_active (combo_box); - if (index != -1) + items = gtk_tree_model_iter_n_children (combo_box->priv->model, NULL); + + if (event->direction == GDK_SCROLL_UP) { - items = gtk_tree_model_iter_n_children (combo_box->priv->model, NULL); - - if (event->direction == GDK_SCROLL_UP) - { - new_index = index - 1; - while (new_index >= 0 && !row_is_sensitive (combo_box, new_index)) - new_index--; - if (new_index < 0) - new_index = index; - } - else - { - new_index = index + 1; - while (new_index < items && !row_is_sensitive (combo_box, new_index)) - new_index++; - if (new_index == items) - new_index = index; - } - - gtk_combo_box_set_active (combo_box, CLAMP (new_index, 0, items - 1)); + new_index = index - 1; + while (new_index >= 0 && !row_is_sensitive (combo_box, new_index)) + new_index--; + if (new_index < 0) + new_index = index; } + else + { + new_index = index + 1; + while (new_index < items && !row_is_sensitive (combo_box, new_index)) + new_index++; + if (new_index == items) + new_index = index; + } + + gtk_combo_box_set_active (combo_box, new_index); return TRUE; } @@ -4064,11 +4061,6 @@ gtk_cell_editable_key_press (GtkWidget *widget, return TRUE; } - else if (event->keyval == GDK_space) - { - /* ignore */ - return TRUE; - } return FALSE; }