mirror of https://github.com/MidnightCommander/mc
930f683019
MC already has its own half-ready trick: when pasting with Shift-Insert, using the X11 extension, the newline ("Enter" as mc calls it) with the Shift modifier pressed gets converted to a "Return", and in the editor the Return character inserts a non-indenting newline. This makes pasting better in terminals not supporting bracketed paste, however, it has some problems that this commit addresses: * Shift+newline gets this special treatment, but Ctrl+newline gets dropped. Hence e.g. when pasting in Gnome-terminal with Ctrl+Shift+V all the newlines will be missing. This commit adds the same non-indenting newline behavior to Ctrl+Newline and Ctrl+Shift+Newline. * The code forgets about Tab that also needs special treatment: - Most terminals send \e[Z on Shift+Tab, this is not handled by MC at all, moreover it causes a hang for about a second. This commit teaches this sequence to MC. This is especially useful when no X11 is available, because there Ctrl+Tab is identical to Tab, so the backwards tab feature is not available. With this commit Shift+Tab becomes a backwards tab too on all terminals that emit \e[Z. - When pasting to the editor, Shift+Tab, Ctrl+Tab and Ctrl+Shift+Tab should all insert a tab for the same reason mentioned at the newline. - It would look inconsistent in the keymap files to have logical code such as "backtab" instead of "shift-tab" and friends, hence get rid of KEY_BTAB and use KEY_M_SHIFT | '\t' instead. Signed-off-by: Andrew Borodin <aborodin@vmail.ru> |
||
---|---|---|
.. | ||
Makefile.am | ||
color-internal.c | ||
color-internal.h | ||
color-ncurses.c | ||
color-slang.c | ||
color-slang.h | ||
color.c | ||
color.h | ||
key.c | ||
key.h | ||
keyxdef.c | ||
mouse.c | ||
mouse.h | ||
tty-internal.h | ||
tty-ncurses.c | ||
tty-ncurses.h | ||
tty-slang.c | ||
tty-slang.h | ||
tty.c | ||
tty.h | ||
win.c | ||
win.h | ||
x11conn.c | ||
x11conn.h |