editor: Support shift-left/right for selecting text
authorRob Bradford <rob@linux.intel.com>
Thu, 11 Jul 2013 15:00:00 +0000 (16:00 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Sat, 13 Jul 2013 03:56:18 +0000 (23:56 -0400)
If the shift modifier is active then we don't make the cursor and the
anchor the same and as a result we develop a selection in the direction
that the arrow key gets pressed in.

https://bugs.freedesktop.org/show_bug.cgi?id=66802

clients/editor.c

index 7e69403..1300ccf 100644 (file)
@@ -1141,7 +1141,8 @@ key_handler(struct window *window,
                        new_char = utf8_prev_char(entry->text, entry->text + entry->cursor);
                        if (new_char != NULL) {
                                entry->cursor = new_char - entry->text;
-                               entry->anchor = entry->cursor;
+                               if (!(input_get_modifiers(input) & MOD_SHIFT_MASK))
+                                       entry->anchor = entry->cursor;
                                widget_schedule_redraw(entry->widget);
                        }
                        break;
@@ -1151,7 +1152,8 @@ key_handler(struct window *window,
                        new_char = utf8_next_char(entry->text + entry->cursor);
                        if (new_char != NULL) {
                                entry->cursor = new_char - entry->text;
-                               entry->anchor = entry->cursor;
+                               if (!(input_get_modifiers(input) & MOD_SHIFT_MASK))
+                                       entry->anchor = entry->cursor;
                                widget_schedule_redraw(entry->widget);
                        }
                        break;