[gnome-todo] task-list-item: improve selection mode



commit 7bd58f95fa193d5ef0c7443d5f07da844145ca7d
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Fri Aug 28 09:43:42 2015 -0300

    task-list-item: improve selection mode
    
    When the user right-clicks the tasklist while
    it's already in selection mode, it should toggle
    the selection state.

 src/gtd-task-list-item.c |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)
---
diff --git a/src/gtd-task-list-item.c b/src/gtd-task-list-item.c
index 4c95fc6..eea7760 100644
--- a/src/gtd-task-list-item.c
+++ b/src/gtd-task-list-item.c
@@ -319,16 +319,25 @@ gtd_task_list_item__button_press_event_cb (GtkWidget *widget,
                                            GdkEvent  *event,
                                            gpointer   user_data)
 {
+  GtdTaskListItemPrivate *priv;
   GdkEventButton *button_ev;
 
   button_ev = (GdkEventButton*) event;
+  priv = GTD_TASK_LIST_ITEM (user_data)->priv;
 
   if (button_ev->button == 3)
     {
-      g_object_set (user_data,
-                    "mode", GTD_WINDOW_MODE_SELECTION,
-                    "selected", TRUE,
-                    NULL);
+      if (priv->mode == GTD_WINDOW_MODE_NORMAL)
+        {
+          g_object_set (user_data,
+                        "mode", GTD_WINDOW_MODE_SELECTION,
+                        "selected", TRUE,
+                        NULL);
+        }
+      else
+        {
+          gtd_task_list_item_set_selected (GTD_TASK_LIST_ITEM (user_data), !priv->selected);
+        }
 
       return GDK_EVENT_STOP;
     }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]