[maemo-commits] [maemo-commits] r13237 - in projects/haf/trunk/gtk+: . gtk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Aug 16 14:06:53 EEST 2007
- Previous message: [maemo-commits] r13236 - in projects/haf/trunk/hildon-1: . src
- Next message: [maemo-commits] r13238 - in projects/haf/trunk/hildon-theme-layout-4: . debian rc
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: kris Date: 2007-08-16 14:06:48 +0300 (Thu, 16 Aug 2007) New Revision: 13237 Modified: projects/haf/trunk/gtk+/ChangeLog projects/haf/trunk/gtk+/gtk/gtktreeprivate.h projects/haf/trunk/gtk+/gtk/gtktreeview.c Log: 2007-08-16 Kristian Rietveld <kris at imendio.com> Improve on "row-activate on single tap, but now until button-release", fixes MB#1481. * gtk/gtktreeprivate.h (GtkTreePrivate): add queued_shift_pressed and queued_ctrl_pressed fiels. * gtk/gtktreeview.c (gtk_tree_view_init): initialize those newly added fields, (gtk_tree_view_button_press): set queue_{shift,ctrl}_pressed, (gtk_tree_view_button_release): improve the delayed row-activation handling by correctly handling shift/ctrl+clicks. Modified: projects/haf/trunk/gtk+/ChangeLog =================================================================== --- projects/haf/trunk/gtk+/ChangeLog 2007-08-16 10:56:50 UTC (rev 13236) +++ projects/haf/trunk/gtk+/ChangeLog 2007-08-16 11:06:48 UTC (rev 13237) @@ -1,3 +1,17 @@ +2007-08-16 Kristian Rietveld <kris at imendio.com> + + Improve on "row-activate on single tap, but now until + button-release", fixes MB#1481. + + * gtk/gtktreeprivate.h (GtkTreePrivate): add queued_shift_pressed and + queued_ctrl_pressed fiels. + + * gtk/gtktreeview.c (gtk_tree_view_init): initialize those newly + added fields, + (gtk_tree_view_button_press): set queue_{shift,ctrl}_pressed, + (gtk_tree_view_button_release): improve the delayed row-activation + handling by correctly handling shift/ctrl+clicks. + 2007-08-15 Kristian Rietveld <kris at imendio.com> * gtk/gtktreeview.c (gtk_tree_view_button_press): only continue Modified: projects/haf/trunk/gtk+/gtk/gtktreeprivate.h =================================================================== --- projects/haf/trunk/gtk+/gtk/gtktreeprivate.h 2007-08-16 10:56:50 UTC (rev 13236) +++ projects/haf/trunk/gtk+/gtk/gtktreeprivate.h 2007-08-16 11:06:48 UTC (rev 13237) @@ -273,6 +273,9 @@ GtkTreeRowReference *queued_select_row; GtkTreeRowReference *queued_expand_row; GtkTreeRowReference *queued_activate_row; + + guint queued_shift_pressed : 1; + guint queued_ctrl_pressed : 1; #endif /* MAEMO_CHANGES */ }; Modified: projects/haf/trunk/gtk+/gtk/gtktreeview.c =================================================================== --- projects/haf/trunk/gtk+/gtk/gtktreeview.c 2007-08-16 10:56:50 UTC (rev 13236) +++ projects/haf/trunk/gtk+/gtk/gtktreeview.c 2007-08-16 11:06:48 UTC (rev 13237) @@ -1383,6 +1383,9 @@ tree_view->priv->queued_select_row = NULL; tree_view->priv->queued_expand_row = NULL; tree_view->priv->queued_activate_row = NULL; + + tree_view->priv->queued_ctrl_pressed = FALSE; + tree_view->priv->queued_shift_pressed = FALSE; #endif /* MAEMO_CHANGES */ #ifdef MAEMO_CHANGES @@ -2786,6 +2789,8 @@ gtk_tree_path_free (old_cursor_path); } + tree_view->priv->queued_ctrl_pressed = tree_view->priv->ctrl_pressed; + tree_view->priv->queued_shift_pressed = tree_view->priv->shift_pressed; tree_view->priv->queued_select_row = gtk_tree_row_reference_new (tree_view->priv->model, path); } @@ -3109,11 +3114,27 @@ GtkTreePath *path; path = gtk_tree_row_reference_get_path (tree_view->priv->queued_select_row); - gtk_tree_view_real_set_cursor (tree_view, path, TRUE, TRUE); + if (tree_view->priv->queued_ctrl_pressed) + { + gtk_tree_view_real_set_cursor (tree_view, path, FALSE, TRUE); + gtk_tree_view_real_toggle_cursor_row (tree_view); + GTK_TREE_VIEW_UNSET_FLAG (tree_view, GTK_TREE_VIEW_DRAW_KEYFOCUS); + } + else if (tree_view->priv->queued_shift_pressed) + { + gtk_tree_view_real_set_cursor (tree_view, path, FALSE, TRUE); + gtk_tree_view_real_select_cursor_row (tree_view, FALSE); + GTK_TREE_VIEW_UNSET_FLAG (tree_view, GTK_TREE_VIEW_DRAW_KEYFOCUS); + } + else + gtk_tree_view_real_set_cursor (tree_view, path, TRUE, TRUE); + gtk_tree_path_free (path); gtk_tree_row_reference_free (tree_view->priv->queued_select_row); tree_view->priv->queued_select_row = NULL; + tree_view->priv->queued_ctrl_pressed = FALSE; + tree_view->priv->queued_shift_pressed = FALSE; } if (gtk_tree_row_reference_valid (tree_view->priv->queued_activate_row))
- Previous message: [maemo-commits] r13236 - in projects/haf/trunk/hildon-1: . src
- Next message: [maemo-commits] r13238 - in projects/haf/trunk/hildon-theme-layout-4: . debian rc
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]