From f5c4b3740c4cd11c25c27512c5c08fea34c780e7 Mon Sep 17 00:00:00 2001 From: Lars Hamann Date: Fri, 4 Dec 1998 01:11:46 +0000 Subject: [PATCH] call toggle_row with valid row numbers only (toggle_row): check if Fri Dec 4 01:20:06 1998 Lars Hamann * gtk/gtkclist.c (gtk_clist_button_release): call toggle_row with valid row numbers only (toggle_row): check if clist_row != NULL --- ChangeLog | 6 ++++++ ChangeLog.pre-2-0 | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-2 | 6 ++++++ ChangeLog.pre-2-4 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtkclist.c | 11 ++++++++--- 8 files changed, 50 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index c705531845..c1249cef4b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Fri Dec 4 01:20:06 1998 Lars Hamann + + * gtk/gtkclist.c (gtk_clist_button_release): call toggle_row with + valid row numbers only + (toggle_row): check if clist_row != NULL + Fri Dec 4 00:50:12 1998 Lars Hamann * gtk/gtkctree.c (gtk_ctree_export_to_gnode): fixed for-loop. diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index c705531845..c1249cef4b 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,9 @@ +Fri Dec 4 01:20:06 1998 Lars Hamann + + * gtk/gtkclist.c (gtk_clist_button_release): call toggle_row with + valid row numbers only + (toggle_row): check if clist_row != NULL + Fri Dec 4 00:50:12 1998 Lars Hamann * gtk/gtkctree.c (gtk_ctree_export_to_gnode): fixed for-loop. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index c705531845..c1249cef4b 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Fri Dec 4 01:20:06 1998 Lars Hamann + + * gtk/gtkclist.c (gtk_clist_button_release): call toggle_row with + valid row numbers only + (toggle_row): check if clist_row != NULL + Fri Dec 4 00:50:12 1998 Lars Hamann * gtk/gtkctree.c (gtk_ctree_export_to_gnode): fixed for-loop. diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index c705531845..c1249cef4b 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,9 @@ +Fri Dec 4 01:20:06 1998 Lars Hamann + + * gtk/gtkclist.c (gtk_clist_button_release): call toggle_row with + valid row numbers only + (toggle_row): check if clist_row != NULL + Fri Dec 4 00:50:12 1998 Lars Hamann * gtk/gtkctree.c (gtk_ctree_export_to_gnode): fixed for-loop. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index c705531845..c1249cef4b 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +Fri Dec 4 01:20:06 1998 Lars Hamann + + * gtk/gtkclist.c (gtk_clist_button_release): call toggle_row with + valid row numbers only + (toggle_row): check if clist_row != NULL + Fri Dec 4 00:50:12 1998 Lars Hamann * gtk/gtkctree.c (gtk_ctree_export_to_gnode): fixed for-loop. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index c705531845..c1249cef4b 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Fri Dec 4 01:20:06 1998 Lars Hamann + + * gtk/gtkclist.c (gtk_clist_button_release): call toggle_row with + valid row numbers only + (toggle_row): check if clist_row != NULL + Fri Dec 4 00:50:12 1998 Lars Hamann * gtk/gtkctree.c (gtk_ctree_export_to_gnode): fixed for-loop. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index c705531845..c1249cef4b 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Fri Dec 4 01:20:06 1998 Lars Hamann + + * gtk/gtkclist.c (gtk_clist_button_release): call toggle_row with + valid row numbers only + (toggle_row): check if clist_row != NULL + Fri Dec 4 00:50:12 1998 Lars Hamann * gtk/gtkctree.c (gtk_ctree_export_to_gnode): fixed for-loop. diff --git a/gtk/gtkclist.c b/gtk/gtkclist.c index d49d4d3c5e..8bcc6b03b1 100644 --- a/gtk/gtkclist.c +++ b/gtk/gtkclist.c @@ -3447,6 +3447,10 @@ toggle_row (GtkCList *clist, case GTK_SELECTION_MULTIPLE: case GTK_SELECTION_SINGLE: clist_row = g_list_nth (clist->row_list, row)->data; + + if (!clist_row) + return; + if (clist_row->state == GTK_STATE_SELECTED) { gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], @@ -3466,8 +3470,9 @@ fake_toggle_row (GtkCList *clist, { GList *work; - if (!(work = g_list_nth (clist->row_list, row))|| - !GTK_CLIST_ROW (work)->selectable) + work = g_list_nth (clist->row_list, row); + + if (!work || !GTK_CLIST_ROW (work)->selectable) return; if (GTK_CLIST_ROW (work)->state == GTK_STATE_NORMAL) @@ -5008,7 +5013,7 @@ gtk_clist_button_release (GtkWidget *widget, case GTK_SELECTION_MULTIPLE: if (get_selection_info (clist, event->x, event->y, &row, &column)) { - if (clist->anchor == clist->focus_row) + if (row >= 0 && row < clist->rows && clist->anchor == row) toggle_row (clist, row, column, (GdkEvent *) event); } clist->anchor = -1;