From 5bf43ccbb8a5fdad702a96341276397f9f7fc9cd Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Tue, 21 Oct 2003 20:19:14 +0000 Subject: [PATCH] set ctrl_pressed and shift_pressed according to the current event state Tue Oct 21 22:07:12 2003 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_real_move_cursor): set ctrl_pressed and shift_pressed according to the current event state (if there is one). (Fixes #125063, reported by Sebastien Bacher). --- ChangeLog | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-4 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtktreeview.c | 14 ++++++++++++++ 6 files changed, 44 insertions(+) diff --git a/ChangeLog b/ChangeLog index 9974cde183..f89e35fe56 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Oct 21 22:07:12 2003 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_real_move_cursor): set + ctrl_pressed and shift_pressed according to the current event + state (if there is one). (Fixes #125063, reported by Sebastien Bacher). + Mon Oct 20 23:24:27 2003 Kristian Rietveld * gtk/gtkentry.c (gtk_entry_key_press): remove the completion diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 9974cde183..f89e35fe56 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Tue Oct 21 22:07:12 2003 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_real_move_cursor): set + ctrl_pressed and shift_pressed according to the current event + state (if there is one). (Fixes #125063, reported by Sebastien Bacher). + Mon Oct 20 23:24:27 2003 Kristian Rietveld * gtk/gtkentry.c (gtk_entry_key_press): remove the completion diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 9974cde183..f89e35fe56 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +Tue Oct 21 22:07:12 2003 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_real_move_cursor): set + ctrl_pressed and shift_pressed according to the current event + state (if there is one). (Fixes #125063, reported by Sebastien Bacher). + Mon Oct 20 23:24:27 2003 Kristian Rietveld * gtk/gtkentry.c (gtk_entry_key_press): remove the completion diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 9974cde183..f89e35fe56 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Tue Oct 21 22:07:12 2003 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_real_move_cursor): set + ctrl_pressed and shift_pressed according to the current event + state (if there is one). (Fixes #125063, reported by Sebastien Bacher). + Mon Oct 20 23:24:27 2003 Kristian Rietveld * gtk/gtkentry.c (gtk_entry_key_press): remove the completion diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 9974cde183..f89e35fe56 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Tue Oct 21 22:07:12 2003 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_real_move_cursor): set + ctrl_pressed and shift_pressed according to the current event + state (if there is one). (Fixes #125063, reported by Sebastien Bacher). + Mon Oct 20 23:24:27 2003 Kristian Rietveld * gtk/gtkentry.c (gtk_entry_key_press): remove the completion diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 9bd611d0c4..f04ad6faa0 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -6264,6 +6264,8 @@ gtk_tree_view_real_move_cursor (GtkTreeView *tree_view, GtkMovementStep step, gint count) { + GdkModifierType state; + g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), FALSE); g_return_val_if_fail (step == GTK_MOVEMENT_LOGICAL_POSITIONS || step == GTK_MOVEMENT_VISUAL_POSITIONS || @@ -6280,6 +6282,15 @@ gtk_tree_view_real_move_cursor (GtkTreeView *tree_view, GTK_TREE_VIEW_SET_FLAG (tree_view, GTK_TREE_VIEW_DRAW_KEYFOCUS); gtk_widget_grab_focus (GTK_WIDGET (tree_view)); + if (gtk_get_current_event_state (&state)) + { + if ((state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK) + tree_view->priv->ctrl_pressed = TRUE; + if ((state & GDK_SHIFT_MASK) == GDK_SHIFT_MASK) + tree_view->priv->shift_pressed = TRUE; + } + /* else we assume not pressed */ + switch (step) { /* currently we make no distinction. When we go bi-di, we need to */ @@ -6300,6 +6311,9 @@ gtk_tree_view_real_move_cursor (GtkTreeView *tree_view, g_assert_not_reached (); } + tree_view->priv->ctrl_pressed = FALSE; + tree_view->priv->shift_pressed = FALSE; + return TRUE; }