Commit Graph

4709 Commits

Author SHA1 Message Date
nick black
e83f1f5ba3
[nckeys] move from PUA-B to 'plane 18' #2247 2021-10-09 11:06:51 -04:00
nick black
4df2cab5a2 [automaton] enable 256-creg sixel when DA1 advertises feature 4 #2229 2021-10-09 09:58:28 -04:00
nick black
98884e21a6 [automaton] fold down DA1 rules, extract attrs #2229 2021-10-09 09:58:28 -04:00
nick black
69c2ae3ba0 Pop keyboard stack if we crash in initialization
if we crash while detecting kitty keyboard support, we
currently don't pop the keyboard state. since we set our
desired state before detecting support, this could leave
the terminal in an invalid state. now, we initialize
kbdlevel to UINT_MAX before detection, so that in a crash,
the pop always happens. we reset it at the end of
interrogation, assuming we didn't load it from a query
response. the downside is that a terminal which doesn't
consume this sequence will get hit with it in a crash, but
we're already crashing, so who cares? leaving the terminal
in an invalid state, however, is very annoying.
2021-10-09 09:58:28 -04:00
nick black
5b5e97033d [sprixel] unite TAM allocation/resize path #2240 2021-10-09 07:50:00 -04:00
nick black
0c7a4b3ac6 [kitty] keyboard sanity across screens
A Notcurses program might shift between the regular and
alternate screen freely. At all times, we want the Kitty
keyboard protocol to be locked in. At the same time, we
always want a screen's keyboard state at the time we start
using it preserved, and restored when we're done. Thus:

start: optionally smcup, push the state, set the state, query
leave alternate: pop state, rmcup, push state, set state
enter alternate: pop state, smcup, push state, set state
done: pop state, optionally rmcup

"set state" means both XTMODKEYS and kitty set.

Closes #2249
2021-10-09 06:38:56 -04:00
nick black
7d82b6f067 [windows] use GetConsoleScreenBufferInfo whenever we have handles 2021-10-09 03:14:47 -04:00
nick black
bee03d5b60
[terminfo] on windows init failure, print panic diagnostic 2021-10-09 02:42:52 -04:00
nick black
e8df81ebef
[windows] exit if we can't get ConsoleHandles #2244 2021-10-09 02:01:04 -04:00
nick black
7d6fdceb6e
[internal] break API/ALLOC across headers once more to fix python 2021-10-09 00:44:11 -04:00
nick black
a3ceeac170
unify definitions of API/ALLOC 2021-10-09 00:15:22 -04:00
nick black
87341111b8
[menu] ignore release events 2021-10-08 22:54:03 -04:00
nick black
e4b75f41e7
[POC] reader: always print legend 2021-10-08 20:29:57 -04:00
nick black
a85d1eebf1
[tree] ignore Release events 2021-10-08 20:24:14 -04:00
nick black
617a211581
[reel] ignore RELEASE events 2021-10-08 20:23:51 -04:00
nick black
dfdd77e2c4
[POC] selector/multiselector ignore release events 2021-10-08 19:22:40 -04:00
nick black
a206cfb700
[readline] ignore suppuables 2021-10-08 19:22:14 -04:00
nick black
e127163b91
[reader] ignore release events 2021-10-08 19:22:00 -04:00
nick black
5c801e6a93
[selector] ignore non-mouse release events 2021-10-08 19:16:38 -04:00
nick black
e17e53c99d
[notcurses-demo] ignore Release events 2021-10-08 19:11:30 -04:00
nick black
f118894057
[ncplayer] test for Release after testing for no event 2021-10-08 19:08:32 -04:00
nick black
8632a23484
[kitty] enable keyboard feature 8 2021-10-08 19:07:06 -04:00
nick black
238c444f02
[kitty] interpret modifiers, enter 2021-10-08 18:12:00 -04:00
nick black
58cc956550
[notcurses-input] detail modifiers as input 2021-10-08 18:11:37 -04:00
nick black
ef86dcce1f
[ncplayer] ignore Release events 2021-10-08 17:50:00 -04:00
nick black
07980c13df
[input] set id to -1 if returning error 2021-10-08 17:49:43 -04:00
nick black
5f82a49065
[tetris] drop Release events 2021-10-08 17:41:00 -04:00
nick black
e5f9600066
ncdirect_readline: ignore RELEASE events 2021-10-08 14:14:14 -04:00
nick black
5f9d88fa89 [tests] use universal initialization for ncvisual_options #1682 2021-10-08 01:56:22 -04:00
nick black
88e2ac14ee
[input] handle wezterm's modified functionals 2021-10-08 00:16:30 -04:00
nick black
1456422d89 use explicit CRLF where necessary on windows #2237 2021-10-07 17:43:21 -04:00
nick black
43e3b98125
[ncplayer] ignore release events 2021-10-07 04:26:05 -04:00
nick black
66d6913b69
[ncpp] express EvType enums 2021-10-07 04:04:04 -04:00
nick black
8fc2a4b59b notcurses-input: add media keys 2021-10-07 03:23:42 -04:00
nick black
d95cf30494 [kitty] extract kitty_functional(), NCKEY_BEGIN #2184 2021-10-07 03:23:42 -04:00
nick black
316c192426 [kitty] handle some more functional forms #2184 2021-10-07 03:23:42 -04:00
nick black
bc011591c1 [kitty] handle release event for f0[1-4] #2184 2021-10-07 03:23:42 -04:00
nick black
b2ed0f2da9 [kitty] handle release events for arrows #2184 2021-10-07 03:23:42 -04:00
nick black
7c5bed3732 [kitty] enable evtype level (2), functionals #2184 2021-10-07 03:23:42 -04:00
nick black
8ec6e22b7c
[ffmpeg] treat nan/-nan tbase as 0 #2241 2021-10-06 23:33:55 -04:00
nick black
28d357d252
replace constant with KKEYBOARD_POP 2021-10-06 22:13:07 -04:00
nick black
80f3d6edfb [xtmodkeys] push keyboard state before sending xtmodkeys 2021-10-06 21:53:28 -04:00
nick black
d42b3df708 Initial XTMODKEYS support #2135
Add prep_xtmodkeys() to handle modified function keys.
Unify several paths into load_ncinput(), eliminating
 several paths that missed statistics and drain checks.
Process mouse clicks outside of critical section.
Handle XTMODKEY sequences with parameter 5.
Interpret 0x8 as NCKEY_BACKSPACE on all paths.
Send XTMODKEYS of 2;1 and 4;1 #2135.
2021-10-06 21:53:28 -04:00
nick black
b9d774f746
[intro] avoid dividing by zero without cell-pixel geometry 2021-10-06 21:50:38 -04:00
nick black
c40cdc1528 [demo] find_data: work for windows path separator 2021-10-07 01:46:27 -04:00
nick black
21f38824ad
[input] set evtype on SIGWINCH 2021-10-06 18:30:53 -04:00
nick black
b6e50d3d2d
[readline] implement ctrl+a and ctrl+e #2214 2021-10-06 18:29:42 -04:00
nick black
a643f6397d
[readline] handle other arrow keys for movement in ncdirect_readline() #2214 2021-10-05 08:31:26 -04:00
nick black
e012046302
[readline] handle left arrow in ncdirect_readline #2214 2021-10-05 08:27:42 -04:00
nick black
6e66e74417
[init] use fbuf for all initial emissions #2238 2021-10-05 07:40:48 -04:00
nick black
2adda48d92
[input] extend support for kitty keyboard protocol through level 3 #2184 2021-10-05 06:35:07 -04:00
nick black
4856431ff3
[input] drop mouse events in right/bottom margins #2233 2021-10-05 05:53:08 -04:00
nick black
9502fcea80
[tcache] always track most recent cell geometry #2233 2021-10-05 05:44:39 -04:00
nick black
5a06a27df7
logging: convert some %jxen to PRIx64 2021-10-05 05:00:20 -04:00
nick black
a11a1bbfc9
logging: convert some %jxen to PRIx64 2021-10-05 04:59:20 -04:00
nick black
174c4e269f
logging: convert some %jxen to PRIx64 2021-10-05 04:55:44 -04:00
nick black
a260649628
[automaton] handle eta extension over multicharacter phi nodes #2234 2021-10-05 04:49:12 -04:00
nick black
66801aa254 ncplane_dup: don't make new root planes 2021-10-05 02:15:56 -04:00
nick black
20fb846fbc kill obsolete FIXME 2021-10-05 02:15:56 -04:00
nick black
4aab6a5bc0 reparent: scrub links more completely for safe family reparenting #2235 2021-10-05 02:15:56 -04:00
nick black
45255e48d8 [demo] handle fps graph as family in case it's pixel #2235 2021-10-05 02:15:56 -04:00
nick black
230fb801f0 [pixelplot] set distinct name for pixel plane 2021-10-05 02:15:56 -04:00
nick black
9185ea000c
add ncplane_set_name()/ncplane_name() + documentation 2021-10-04 20:46:47 -04:00
nick black
518eca2f60
move_family_{below,above}() need return int #2232 2021-10-04 13:41:14 -04:00
nick black
a2837a9754
fix unit test for ncplane_move_family() #2232 2021-10-04 05:36:53 -04:00
nick black
099eda88ac
notcurses-info: put 80 columns error in red+bold 2021-10-04 05:36:17 -04:00
nick black
a40c7a5352
FamilyBottom unit test #2232 2021-10-04 05:20:18 -04:00
nick black
e613b81b82
ncplane_move_family_{below, above}() with unit tests #2232 2021-10-04 05:16:58 -04:00
nick black
2b9765e945
finish out ncplane_move_family_{top, bottom}() #2232 2021-10-04 04:18:54 -04:00
nick black
3d21c0a91b
[input] handle backspace when expressed as ctrl expression #2231 2021-10-04 03:35:12 -04:00
nick black
6fa901c4b1
[kitty] fix default background workaround, erp 2021-10-04 02:55:32 -04:00
nick black
8dd84f922e
ncplane_move_family_{below, above}() skeleton #2232 2021-10-04 02:06:37 -04:00
nick black
57a3e79e3c
s/defbg/default background/ 2021-10-04 01:57:08 -04:00
nick black
43fc6afaa3
ncplane_move_family_{above, below}() #2232 2021-10-04 01:50:01 -04:00
nick black
c69849ffb1
track unknown background color if we can't learn it #2226 2021-10-04 01:48:50 -04:00
nick black
e42a76a2d2
Remove and replace ncplane_boundlist()
The function ncplane_boundlist() was poorly-considered,
and ought never have existed. Remove all traces of it.
Add the new functions ncplane_move_family_top() and
ncplane_move_family_bottom(). Replace the
ncplane_boundlist() code in notcurses-demo with a call
to ncplane_move_family_top(). We'll also want
ncplane_move_family_above() and ncplane_move_family_below(),
but they're not yet here. Document all z-axis movement
functions; they were lacking documentation before #2232.
2021-10-04 01:01:35 -04:00
nick black
73b3a43fc7
[notcurses-tester] dump geometry after init #2228 2021-10-03 21:39:52 -04:00
nick black
284bbd4723
notcurses-tester: print TERM earlier #2228 2021-10-03 21:35:41 -04:00
nick black
dfb32779b7 [automaton] handle BEL (0x07) as string terminator #2225 2021-10-02 23:13:13 -05:00
nick black
9c59ea5164 [automaton] move decrpm_asu_cb up #2223 2021-10-02 22:36:26 -05:00
nick black
f3377fd818
[automaton] handle XTGETTCAP, decoding MLterm and old Kitty #2225 2021-10-02 23:23:18 -04:00
nick black
f3c18b3279
[automaton] loop all the way through 9, whoops #2225 2021-10-02 23:04:13 -04:00
nick black
c5cf67e5f1
[automaton] collapse secondary device attribute strings #2227 2021-10-02 15:00:13 -04:00
nick black
fe05035930
[xray] black background, not default #2226 2021-10-02 12:45:07 -04:00
nick black
2b482109af [automaton] remove defunct fill_in_numerics 2021-10-02 12:27:49 -04:00
nick black
5d8fbc6137 [automaton] numeric insertion algorithm perfected #2222 2021-10-02 12:27:49 -04:00
nick black
686a72a697 [automaton] phase I and II of new numeric insert algorithm #2222 2021-10-02 12:27:49 -04:00
nick black
6c45a087bf build cflow following special keys #2222 2021-10-02 12:27:49 -04:00
nick black
f0fd38ef9e [windows] kill some %j conversion in ncmultiselector 2021-10-02 11:27:27 -05:00
nick black
5e07cf9015 [windows] kill %zu conversion 2021-10-02 11:26:24 -05:00
nick black
bbb778b7de
[da1_cb] admit 60 as sent by kmscon 2021-10-02 09:11:34 -04:00
nick black
af62226f69
[plots] always return -1 on x below window 2021-10-01 22:15:58 -04:00
nick black
346e7354a0
[plots] don't redraw plot when there's no change #2221 2021-10-01 21:10:47 -04:00
nick black
fff190fe29
[automaton] NAK: terminfo is not thread-safe =/ 2021-10-01 20:45:33 -04:00
nick black
2498fffbbb
[automaton] unify insertion paths into insert_path() #2183 2021-10-01 20:35:30 -04:00
nick black
ce931a1bd5
[add_cflow] s/csi/seq/g 2021-10-01 20:03:33 -04:00
nick black
57179a1c38 [automaton] pool needn't be so large, methinks 2021-10-01 19:34:49 -04:00
nick black
57e5981b9d [automaton] kill memory leak via arena 2021-10-01 19:34:49 -04:00
nick black
9fc4418912 [automaton] match follow for mouse events 2021-10-01 19:34:49 -04:00
nick black
49365e2d22 decrpm_asu_cb: correct follow 2021-10-01 19:34:49 -04:00