Commit graph

3431 commits

Author SHA1 Message Date
Daniel Eklöf
498d94304c
wayland: force a resize on the final configure event after an interactive resize
This is needed to apply content centering after an interactive resize,
as otherwise we’d just ignore the last configure event since the only
difference between that event and the next to last event is that the
is-resizing bit has been cleared. I.e. the window size is identical to
what we already have, and our resize code would thus ignore the event.
2021-01-20 17:48:38 +01:00
Daniel Eklöf
65121a98cb
render: don’t center content while we’re being resized
Doing so causes the content to jump around while interactively
resizing the window.
2021-01-20 17:48:38 +01:00
Daniel Eklöf
6e99769cc3
wayland: track is-resizing state 2021-01-20 17:48:38 +01:00
Daniel Eklöf
905813fb2f
wayland: pack booleans in the “pending” configure struct 2021-01-20 17:48:38 +01:00
Daniel Eklöf
c5031be489
Merge branch 'stacktrace' 2021-01-20 17:47:05 +01:00
Craig Barnes
e56136ce11 debug: rename assert() to xassert(), to avoid clashing with <assert.h> 2021-01-16 20:16:00 +00:00
Craig Barnes
22f25a9e4f Print stack trace on assert() failure or when calling fatal_error()
Note: this uses the __sanitizer_print_stack_trace() function from the
AddressSanitizer runtime, so it only works when AddressSanitizer is
in use.
2021-01-16 19:56:33 +00:00
Daniel Eklöf
bcf46d9eab
Merge branch 'decset-1047-and-1048' 2021-01-16 15:27:20 +01:00
Daniel Eklöf
0142930702
Merge branch 'dont-crash-when-keyboard-repeat-rate-is-zero' 2021-01-16 15:24:02 +01:00
Daniel Eklöf
e41654d4ea
csi: implement DECSET 47 - use alternate screen buffer 2021-01-16 13:34:40 +01:00
Daniel Eklöf
67ac09ab2e
input: don’t enable keyboard repeat timer when repeat rate is zero
wayland-client-protocol.h:

  Negative values for either rate or delay are illegal. A rate of
  zero will disable any repeating (regardless of the value of
  delay).

This fixes a division-by-zero crash.
2021-01-16 12:33:59 +01:00
Daniel Eklöf
50b309da06
changelog: DECSET 1047+1048: remove ‘Implemented’ 2021-01-15 19:08:51 +01:00
Daniel Eklöf
27fe3faa4c
changelog: DECSET 1047+1048 2021-01-15 19:08:16 +01:00
Daniel Eklöf
cebdae4bae
Merge remote-tracking branch 'origin/draw-sextant-enum-matrix' 2021-01-15 18:43:04 +01:00
Daniel Eklöf
bc053e4879
vt: document correct BS behavior, and why we do differently 2021-01-15 18:40:07 +01:00
Daniel Eklöf
2a012f86d8
term: keep cursor state in grid, for now, but document that it _could_ be moved 2021-01-15 18:02:17 +01:00
Daniel Eklöf
a63e7983dd
csi: add support for ?1047 and ?1048
* 1047 enters/leaves the alt screen, but without saving/restoring the
  cursor.
* 1048 saves/restores the cursor
* 1049 is 1047+1048

Note: when xtsaving and xtrestoring 1048, why simply save/restore the
cursor. Without having read XTerms sources, this appears to be what it
is doing.
2021-01-15 17:09:15 +01:00
Daniel Eklöf
bae3c871bb
term/vt/csi: break out cursor save/restore to dedicated functions 2021-01-15 17:08:30 +01:00
Craig Barnes
dad0549f2e box-drawing: use enum constants in draw_sextant() instead of #define
Both are functionally equivalent here, but the former is also properly
scoped, can be naturally indented and has a less repetitive syntax.
2021-01-15 16:07:51 +00:00
Daniel Eklöf
c0a3f89775
Merge branch 'xsnprintf' 2021-01-15 09:34:24 +01:00
Craig Barnes
3f4cfa338b Add xsnprintf() and remove some unnecessary strlen(3) calls 2021-01-14 21:30:06 +00:00
Daniel Eklöf
b25b8a78a9
Merge branch 'selection-extend-force-character-wise'
Closes #258
2021-01-14 16:30:01 +01:00
Daniel Eklöf
767bd4f1db
config: add ‘select-extend-character-wise’ bind action
This forces the (new) selection mode to be character-wise when
extending a word- or line-wise selection.

Default key binding is ctrl+RMB.
2021-01-14 16:29:29 +01:00
Daniel Eklöf
2e46811953
Merge branch 'sixel-current-geometry-response' 2021-01-14 16:12:49 +01:00
Daniel Eklöf
76db20d977
readme: add IME to the feature list 2021-01-14 15:12:10 +01:00
Daniel Eklöf
5efd34c3c4
sixel: current geometry: don’t exceed current window dimensions
This is similar to what XTerm does, and fixes an issue with lsix,
where the output did not wrap.
2021-01-14 14:41:34 +01:00
Daniel Eklöf
0de0411300
changelog: superceded -> superseded 2021-01-14 10:57:56 +01:00
Daniel Eklöf
5acdc89952
Merge branch 'box-drawing-line-thickness'
Closes #281
2021-01-14 10:49:39 +01:00
Daniel Eklöf
8cd38e0157
Merge branch 'remove-geometry-option'
Closes #287
2021-01-14 10:33:53 +01:00
Craig Barnes
0791fba9c7 main: remove deprecated "--geometry" option
Closes #287
2021-01-13 20:01:05 +00:00
Daniel Eklöf
f54e9dd841
changelog: box drawing line thickness depend on the font size 2021-01-12 17:38:12 +01:00
Daniel Eklöf
4f1b6a8ff3
doc: foot.ini: tweak: document box-drawing-base-thickness 2021-01-12 17:36:20 +01:00
Daniel Eklöf
f178de4c25
config: change default box drawing line thickness from 0.02 -> 0.04 2021-01-12 17:31:55 +01:00
Daniel Eklöf
14ce8fd872
box-drawing: line thickness now depends on both DPI and cell size
Cell size is defined as the length of the diagonal of the cell.
2021-01-12 17:31:55 +01:00
Daniel Eklöf
cbe896f694
config: add temporary(?) tweak option for box drawing line thickness 2021-01-12 17:31:55 +01:00
Daniel Eklöf
f1b4bf1275
box-drawing: LIGHT ARC: ensure row+col are within range 2021-01-12 17:31:55 +01:00
Daniel Eklöf
4bb056bb4b
box-drawing: {h,v}line() + rect(): ensure *end* row/col is >= 0 2021-01-12 17:31:47 +01:00
Daniel Eklöf
c009150ec0
Merge branch 'selection-handle-uri-list-wihtout-final-newline'
Closes #291
2021-01-12 16:15:20 +01:00
Daniel Eklöf
3be80622ef
selection: uri decode: move zero-length check into decode_one_uri() 2021-01-12 14:56:47 +01:00
Daniel Eklöf
497b8e6c0a
changelog: add hyphen between ‘newline’ and ‘terminated’ 2021-01-12 14:55:21 +01:00
Daniel Eklöf
d968bcd506
changelog: pasting non-newline terminated text/uri-list offers 2021-01-12 14:48:20 +01:00
Daniel Eklöf
c8bcce83d5
selection: add a ‘finish’ function, called at the end of receiving clipboard data
This is necessary to decode the final URI in a text/uri-list offer if
it hasn’t been newline terminated.
2021-01-12 14:45:41 +01:00
Daniel Eklöf
e3e3ffc67c
selection: URI decoder: break out decoding of a single URI 2021-01-12 14:45:04 +01:00
Daniel Eklöf
61b7bf91f7
Merge branch 'fix-crash-when-closing-window'
Closes #289
2021-01-12 13:27:09 +01:00
Daniel Eklöf
214371458e
reaper: remove child from list *before* calling the user provided callback
The user provided callback may call reaper_del(), in which case we
will crash when we also try to remove the child from the list.

Remove it from the list before the callback means reaper_del() (if
called by the callback) will just loop through the entire list without
finding the pid and thus do nothing.
2021-01-12 09:30:27 +01:00
Daniel Eklöf
6b539ba373
term: remove client application’s pid from reaper when shutting down
When we are shutting down the terminal, we explicitly wait for the
child application to terminate (with a timeout, after which the child
process is killed).

I.e. there’s no need to let the reaper handle it. In fact, doing so
leads to a crash since we will have destroyed (and thus free:d) the
terminal instance when the reaper callback is called.
2021-01-12 09:21:01 +01:00
Daniel Eklöf
fe12c54d35
pgo: stub implementation of reaper_del() 2021-01-12 09:20:54 +01:00
Daniel Eklöf
c83cc7f862
reaper: add reaper_del() - pid is no longer watched/monitored after this 2021-01-12 09:20:02 +01:00
Daniel Eklöf
dce402ae42
config: pt_or_px cannot be a union 2021-01-11 19:37:05 +01:00
Daniel Eklöf
deaff095c6
wayland: take rotation into account when calculating the logical PPI 2021-01-11 17:53:27 +01:00