[evolution] Bug 775370 - Arrow left/right for closing/opening threads



commit b22d4cbc560b2a4a9d4cce4c1176662c98ec8b9c
Author: Milan Crha <mcrha redhat com>
Date:   Tue Dec 6 16:15:27 2016 +0100

    Bug 775370 - Arrow left/right for closing/opening threads

 src/e-util/e-tree.c |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/src/e-util/e-tree.c b/src/e-util/e-tree.c
index 49e685a..3838932 100644
--- a/src/e-util/e-tree.c
+++ b/src/e-util/e-tree.c
@@ -1037,9 +1037,13 @@ item_key_press (ETableItem *eti,
        case GDK_KEY_KP_Right:
                /* Only allow if the Shift modifier is used.
                 * eg. Ctrl-Equal shouldn't be handled.  */
-               if ((key->state & (GDK_SHIFT_MASK | GDK_LOCK_MASK |
-                       GDK_MOD1_MASK)) != GDK_SHIFT_MASK)
-                       break;
+               if ((key->state & (GDK_SHIFT_MASK | GDK_LOCK_MASK | GDK_MOD1_MASK)) != GDK_SHIFT_MASK) {
+                       /* Allow also plain (without modifiers) expand when in the 'line' cursor mode */
+                       if (eti->cursor_mode != E_CURSOR_LINE ||
+                           (key->state & (GDK_SHIFT_MASK | GDK_LOCK_MASK | GDK_MOD1_MASK)) != 0)
+                               break;
+               }
+
                if (row != -1) {
                        path = e_tree_table_adapter_node_at_row (
                                tree->priv->etta, row);
@@ -1055,9 +1059,13 @@ item_key_press (ETableItem *eti,
        case GDK_KEY_KP_Left:
                /* Only allow if the Shift modifier is used.
                 * eg. Ctrl-Minus shouldn't be handled.  */
-               if ((key->state & (GDK_SHIFT_MASK | GDK_LOCK_MASK |
-                       GDK_MOD1_MASK)) != GDK_SHIFT_MASK)
-                       break;
+               if ((key->state & (GDK_SHIFT_MASK | GDK_LOCK_MASK | GDK_MOD1_MASK)) != GDK_SHIFT_MASK) {
+                       /* Allow also plain (without modifiers) collapse when in the 'line' cursor mode */
+                       if (eti->cursor_mode != E_CURSOR_LINE ||
+                           (key->state & (GDK_SHIFT_MASK | GDK_LOCK_MASK | GDK_MOD1_MASK)) != 0)
+                               break;
+               }
+
                if (row != -1) {
                        path = e_tree_table_adapter_node_at_row (
                                tree->priv->etta, row);


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