1
0
Fork 0

Handle alt+enter as newline char

Let user print newline character using alt+enter keybind,
it allows great flexibility in communication,
now user will be able to write much better longer messages.
This commit is contained in:
John Hernandez 2023-11-11 20:04:17 +01:00
parent bba8278bb7
commit dac6d0c4f8
2 changed files with 14 additions and 0 deletions

View File

@ -80,6 +80,9 @@ Mark current window for later reading with an attention flag.
.BI ALT+m
Switch between windows marked with the attention flag.
.TP
.BI ALT+ENTER
Add newline character without sending a message/command.
.TP
.BI ALT+c
Run external editor (see
.BR profanity-editor (1))

View File

@ -137,6 +137,7 @@ static int _inp_rl_subwin_pagedown_handler(int count, int key);
static int _inp_rl_startup_hook(void);
static int _inp_rl_down_arrow_handler(int count, int key);
static int _inp_rl_send_to_editor(int count, int key);
static int _inp_rl_print_newline_symbol(int count, int key);
void
create_input_window(void)
@ -482,6 +483,7 @@ _inp_rl_addfuncs(void)
rl_add_funmap_entry("prof_win_close", _inp_rl_win_close_handler);
rl_add_funmap_entry("prof_send_to_editor", _inp_rl_send_to_editor);
rl_add_funmap_entry("prof_cut_to_history", _inp_rl_down_arrow_handler);
rl_add_funmap_entry("prof_print_newline_symbol", _inp_rl_print_newline_symbol);
}
// Readline callbacks
@ -555,6 +557,8 @@ _inp_rl_startup_hook(void)
rl_bind_keyseq("\\e[1;5B", _inp_rl_down_arrow_handler); // ctrl+arrow down
rl_bind_keyseq("\\eOb", _inp_rl_down_arrow_handler);
rl_bind_keyseq("\\e\\C-\r", _inp_rl_print_newline_symbol); // alt+enter
// unbind unwanted mappings
rl_bind_keyseq("\\e=", NULL);
@ -960,3 +964,10 @@ _inp_rl_send_to_editor(int count, int key)
return 0;
}
static int
_inp_rl_print_newline_symbol(int count, int key)
{
rl_insert_text("\n");
return 0;
}