From 67b14d5fe5fe52372e5aec9d5d406e0cd7cfd9b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 26 Sep 2014 15:43:17 +0100 Subject: [PATCH] st-entry: Implement Ctrl-u / Ctrl-k keybindings These keybindings are well-established on the CLI (e.g. "kill-line" and "unix-line-discard" in readline(3)), and adding support for them is cheap ... https://bugzilla.gnome.org/show_bug.cgi?id=737346 --- src/st/st-entry.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/st/st-entry.c b/src/st/st-entry.c index 8ad3f80d5..1507c2df4 100644 --- a/src/st/st-entry.c +++ b/src/st/st-entry.c @@ -662,6 +662,29 @@ st_entry_key_press_event (ClutterActor *actor, return TRUE; } + + /* delete to beginning of line */ + if ((event->modifier_state & CLUTTER_CONTROL_MASK) + && event->keyval == CLUTTER_u) + { + int pos = clutter_text_get_cursor_position ((ClutterText *)priv->entry); + clutter_text_delete_text ((ClutterText *)priv->entry, 0, pos); + + return TRUE; + } + + + /* delete to end of line */ + if ((event->modifier_state & CLUTTER_CONTROL_MASK) + && event->keyval == CLUTTER_k) + { + ClutterTextBuffer *buffer = clutter_text_get_buffer ((ClutterText *)priv->entry); + int pos = clutter_text_get_cursor_position ((ClutterText *)priv->entry); + clutter_text_buffer_delete_text (buffer, pos, -1); + + return TRUE; + } + return CLUTTER_ACTOR_CLASS (st_entry_parent_class)->key_press_event (actor, event); }