Maxime Coste
151eb3299d
Fix CSI u parsing of some special keys
2020-05-12 08:50:27 +10:00
Maxime Coste
ccecd5bd8e
Add support for alpha channel in colors
...
This makes it easier to define faces that lighten/darken whatever
they apply on.
2020-05-02 12:57:36 +10:00
Maxime Coste
8f30e37507
Untie focus reporting and mouse handling
2020-03-27 07:54:21 +11:00
Joachim Henke
3881dc1e7a
restore F1 key handling
2020-03-04 09:06:46 +01:00
Maxime Coste
b8eef27e04
Enable terminal application keypad mode
2020-02-26 17:45:52 +11:00
Joachim Henke
4914029712
fix several control key combinations in st
2020-01-20 12:51:06 +01:00
Joachim Henke
2deeb9df52
make the Insert key work in st
2020-01-19 16:22:34 +01:00
Maxime Coste
b85365bff8
Reset SIGHUP handler on NCursesUI destruction
...
SIGHUP handler could trigger crashes if the EventManager was
already destructed when it was triggered.
Fixes #3288
2020-01-11 17:22:33 +11:00
Maxime Coste
80ffc4d34f
Merge remote-tracking branch 'fsub/rxvt'
2020-01-05 10:03:37 +11:00
Maxime Coste
e6b98744c6
Restore support for line wrapping info boxes
...
Fixes #3280
2020-01-04 11:41:16 +11:00
fsub
e7e7289813
Support rxvt style s-F3 to s-F10
2019-12-14 23:17:34 +01:00
fsub
3aab032797
Support rxvt style s-F11 and s-F12
...
Rxvt emits `\E[23$` and `\E[24$` for `F21` and `F22` (alias `s-F11` and
`s-F12` provided that `ncurses_shift_function_key` is set to `10`),
respectively.
2019-12-14 20:03:48 +01:00
Tim Allen
170762b4d9
src/ncurses_ui.cc: Add support for VT220-style Home and End keys.
...
Because we now support a bunch of different conventions for these keys, let's
add some citations for the benefit of future maintainers.
Fixes #3252 .
2019-12-11 22:53:15 +11:00
Maxime Coste
fc9e0e8c6a
Fix small info text not being displayed
2019-11-26 22:08:05 +11:00
Maxime Coste
34f48cc851
Rework ncurses info display, crop content when overlflowing
...
Optmize the code to avoid allocating like crazy, unify various
info style rendering, crop content and display markers that there
is more text remaining.
Fixes #2257
2019-11-24 18:11:29 +11:00
Maxime Coste
cb1b03c0db
Add support for markup in info boxes
...
Fixes #2552
2019-11-22 21:50:51 +11:00
Maxime Coste
c031a276d5
Fix recently introduced ncurses redraw artifact
2019-11-18 21:17:22 +11:00
Maxime Coste
d3c3e59bbf
Fix search menu trimmed entry display
2019-11-17 22:53:27 +11:00
Maxime Coste
e33ba455c8
Re-merge clear_to_eol in draw
2019-11-13 22:17:08 +11:00
Jason Felice
9692e491ac
Fix bad comparison when parsing OSI sequences
2019-11-09 12:53:45 -05:00
Maxime Coste
8e63aa1548
Check that stdout is a tty in ncurses ui
2019-11-09 08:19:45 +11:00
Maxime Coste
294a5b72e6
Fix some ncurses rendering issues
2019-11-05 17:36:21 +11:00
Maxime Coste
6f3124d678
Split clearing to end of line out of NCursesUI::Window::draw
...
Explicitely clear instead of relying on a brittle heuristic.
2019-11-05 08:04:58 +11:00
Maxime Coste
3a36a2486e
Slight cleanup of the menu display code
2019-10-16 20:45:53 +11:00
Maxime Coste
a2993ea104
Check that stdin is readable before calling read
...
This should not be necessary, but it works around a bug in WSL.
Fixes #3112
2019-10-08 18:38:05 +11:00
Maxime Coste
aa6a7e544d
Fix some clang warnings
2019-09-26 20:22:27 +10:00
Maxime Coste
1d9a9bc308
Remove unneeded NCursesUI::Window::mark_dirty and redraws
...
A bug in client.cc was always forcing full redraws of the windows,
leading to much more terminal output traffic than necessary.
2019-09-26 20:14:08 +10:00
Maxime Coste
7f141e83ce
Additional NCursesUI code cleanups
2019-09-25 22:46:39 +10:00
Maxime Coste
2eccbbbe6f
Avoid unnecessary allocations in NCursesUI::Window::draw calls
...
Pass an ArrayView<DisplayAtom> instead of a DisplayLine& so that
the newly common case of passing a single atom does not require
constructing a Vector.
2019-09-25 22:46:39 +10:00
Maxime Coste
f855deaf8b
Refactor NCursesUI::Window to reduce the exposed methods
...
This should make an alternate implementation simpler as less state
has to be tracked.
2019-09-25 22:46:39 +10:00
Maxime Coste
9c2d2ad694
Do not set O_NONBLOCK on stdin
...
It is not necessary, and impacts also writing to stdout, leading
to broken display on old ncurses versions.
Fixes #3087
2019-09-25 20:33:01 +10:00
Maxime Coste
de3ff78b22
Restore stdin status flags on suspend and quit
...
Those flags are shared with the parent process, so the non-block
flag added impacts their execution.
2019-09-24 23:28:11 +10:00
Maxime Coste
df6d0355d6
Add support for parsing SS3 key sequences
...
As discussed on #3087 , fixes part of that issue.
2019-09-22 09:16:47 +10:00
Maxime Coste
c787128a7c
Restore palette before suspend
2019-09-16 21:57:53 +10:00
Maxime Coste
bfc07b53a2
Correctly restore terminal state on suspend
2019-09-16 07:38:24 +10:00
Maxime Coste
afd5006e8b
Small style tweak
2019-09-16 07:38:24 +10:00
Maxime Coste
9235238191
Fix input coming in packets characters being dropped
2019-09-16 07:38:24 +10:00
Maxime Coste
006083c6f8
Fix multi-client server suspend
2019-09-16 07:38:24 +10:00
Maxime Coste
f43ac3d78b
Fix broken input after suspend
2019-09-16 07:38:24 +10:00
Maxime Coste
e52b93b31a
Setup terminal raw mode without going through ncurses
2019-09-16 07:38:24 +10:00
Maxime Coste
f2f99580f8
Get rid of ncurses based input parsing in favor of custom code
2019-09-16 07:38:24 +10:00
Maxime Coste
a440869573
Fix modifiers support with mouse events
2019-09-07 22:49:30 +10:00
Maxime Coste
04b5d44b3c
Rework custom CSI parsing code and add support for SGR (1006) mouse
...
This will support parsing mouse coordinates bigger than 255 - 32.
And get correct release support.
2019-09-07 22:29:05 +10:00
Maxime Coste
4cc187a54f
Remove unneeded uses of NCurses WINDOW*
...
intrflush and meta have a WINDOW* parameter that is documented as
always ignored.
2019-09-05 00:25:27 +10:00
Maxime Coste
afd45c6755
Extract most ncurses calls into NCursesUI::Window methods
...
Try to isolate ncurses as much as possible to explore alternate
terminal UI implementation.
2019-09-05 00:25:27 +10:00
Frank LENORMAND
cb2647878b
src: Send the stop signal to the entire process group
...
Whenever a tool spawns the editor (e.g. Git), suspending it with ^Z is not
enough to be sent back to the calling shell - another ^Z is necessary.
Fixes #3061
2019-08-21 10:32:35 +02:00
Maxime Coste
2359df0f17
Make scrolling speed configurable
...
The UI now can send a 'Scroll' key, whose value is the scrolling
amount encoded as a signed integer. This replaces the MouseWheelUp
and MouseWheelDown keys.
The NCursesUI now has a ncurses_wheel_scroll_amount ui_option that
controls that amount, it can be negative to swap scrolling direction.
Fixes #3045
2019-08-19 22:16:39 +10:00
Joachim Henke
556d58a073
allow for mapping the Insert key
2019-07-07 18:38:46 +02:00
Maxime Coste
a8ea599372
Remove another unnecessary ; in palete reset escape sequence
...
Should fix #2779 for real.
2019-03-16 11:57:31 +11:00
Maxime Coste
47be98f1fc
Remove unnecessary ; from palette reset escape sequence
...
Fixes #2779
2019-03-13 07:19:20 +11:00