Commit graph

153 commits

Author SHA1 Message Date
Daniel Eklöf
a4d2a2bf28
changelog: add extra newline between index and first release 2020-07-29 07:01:44 +02:00
Daniel Eklöf
f8d9bf18e5
config: handle trailing comments and empty values 2020-07-29 07:01:10 +02:00
Daniel Eklöf
7eee2d715d
changelog: improved font size consistency across monitors with different DPI 2020-07-29 06:59:06 +02:00
Daniel Eklöf
d675cf8720
input: margins are not selectable
* Fix col/row calculation in pointer-enter event; we did not take the
  margins into account.
* seat->mouse.col,row are now set to -1 if the cursor is inside the
  margins. That is, col/row are only ever valid when the mouse is
  actually over the grid, and not in the margins.
* Use regular 'left-ptr' mouse cursor when mouse is inside the
  margins, to not make the user think he/she can start a selection.

Besides making things clearer, this also fixes a crash that occurred
if you started a selection in e.g. the right margin.
2020-07-29 06:57:22 +02:00
Daniel Eklöf
363a0de8b9
changelog: add 1.4.4 section 2020-07-29 06:55:23 +02:00
Daniel Eklöf
4143f331ff
changelog: prepare for 1.4.3 2020-07-27 18:55:12 +02:00
Daniel Eklöf
7127a0a6c3
selection: extending a selection is now interactive
That is, a selection extension can be resized just like an ordinary
extension.
2020-07-27 16:44:41 +02:00
Daniel Eklöf
50bd51c4d4
tokenize: handle escaped quotes
We only support escaping quotes inside a quote, and only of the same
type as the enclosing quote.

I.e.

  "double quote \"escaped double quote\""

But not

  "double quote \'invalid escaped single quote\'"
2020-07-27 16:43:41 +02:00
Daniel Eklöf
faad093627
changelog: mention fix for crash on unclosed quote in tokenizer 2020-07-27 16:41:35 +02:00
Daniel Eklöf
4153d77feb
changelog: add 'contributors' section 2020-07-25 13:55:05 +02:00
Daniel Eklöf
9f82cbaa49
search: fix crash when searching the scrollback history
search_update_selection() was changed in 1.4.x to *first* update the
selection, *then* move the viewport.

This leads to a crash if the new match (selection) is outside the
current viewport; the selection code assumes the updated selection
endpoint is in the visible viewport.

Changing back to *first* move the viewport, *then* update the
selection solves this.
2020-07-25 11:23:54 +02:00
Daniel Eklöf
373745c597
meson: install LICENSE, README.md and CHANGELOG.md 2020-07-25 09:05:11 +02:00
Daniel Eklöf
c50a442810
readme: add section describing how to identify foot 2020-07-24 17:50:48 +02:00
Daniel Eklöf
8d81dde5b8
search: improve viewport movements
* Don't move the viewport if the new match is already fully visible
* When we do have to move the viewport, position it such that the new
  match ends up roughly in the middle.
2020-07-24 17:49:50 +02:00
Daniel Eklöf
60984e7a24
csi: secondary DA: do not pretend we're xterm
Previously, our secondary DA response indicated a) VT420, b) an XTerm
version number.

Now, we indicate VT220 (which corresponds to the primary DA response),
and we report foot's version number as MMmmpp. I.e major, minor and
patch versions, using two digits.

E.g. 1.4.2 is encoded as 010402
2020-07-24 17:47:47 +02:00
Daniel Eklöf
cc60d3a670
csi: primary DA: remove features we do not support
We do not implement

* Selective Erase
* Technical Character Set
* Terminal state interrogation
2020-07-24 17:46:18 +02:00
Daniel Eklöf
0c11542eca
changelog: add new 'unreleased' section 2020-07-23 18:56:47 +02:00
Daniel Eklöf
0e0d6aea86
changelog: prepare for 1.4.2 2020-07-23 18:51:33 +02:00
Daniel Eklöf
f6473756d9
sixel: remove sixel-to-be-splitted *before* splitting it
This fixes an assertion in debug builds, due to the pre-splitted and
splitted sixels overlapping.
2020-07-23 18:15:29 +02:00
Daniel Eklöf
fda6e9c2c9
sixel: overwrite: use target sixel's height, not cell height
When copying the image data for the left and right parts of the
splitted images, use the sixel's height, not the cell height.

This fixes a crash when the sixel didn't cover the entire cell height.
2020-07-23 18:13:54 +02:00
Daniel Eklöf
3869c7299f
render: bump maximum window title length from 100 to 2048 (bytes)
Apparently, the max is ~8K, but lets stay on the safe side.
2020-07-22 21:07:57 +02:00
Daniel Eklöf
d58f88661f
changelog: add new 'unreleased' section 2020-07-22 20:06:07 +02:00
Daniel Eklöf
d1f02af308
changelog: prepare or 1.4.1 2020-07-22 20:03:28 +02:00
Daniel Eklöf
63d73f8685
changelog: add a new 'unreleased' section 2020-07-22 19:11:57 +02:00
Daniel Eklöf
8bb1607557
changelog: prepare for 1.4.0 2020-07-22 18:59:19 +02:00
Daniel Eklöf
de75a2035e
Merge branch 'master' into pipe-grid-to-external-tool 2020-07-16 08:53:20 +02:00
Daniel Eklöf
ad479cae05
changelog: use bemenu instead of fuzzel in pipe-visible example 2020-07-15 18:22:40 +02:00
Daniel Eklöf
e04b8f672b
changelog: minor 2020-07-15 17:54:25 +02:00
Daniel Eklöf
6ba6858fdc
changelog: document pipe-visible and pipe-scrollback bindings 2020-07-15 17:53:36 +02:00
Max Hollmann
5ae45c3b45 added font-size limitting to changelog 2020-07-15 11:05:22 +02:00
Daniel Eklöf
7d134e6b1c
changelog: 'not' -> 'now' 2020-07-14 12:48:16 +02:00
Daniel Eklöf
635698722e
changelog: prefix all C0 names with 'C0::' 2020-07-14 11:33:30 +02:00
Daniel Eklöf
9dc1d18241
term: print: force line-wrap if a multi-column character does not fit on current line 2020-07-14 10:58:57 +02:00
Daniel Eklöf
bc2fc778ae
csi: DECAWM: clear LCF 2020-07-14 10:54:53 +02:00
Daniel Eklöf
7fce1720d6
csi: IND+RI now clears LCF 2020-07-14 10:52:46 +02:00
Daniel Eklöf
01c3a2635d
term: linefeed: explicitly clear LCF
LF should always clear LCF. Previously, it was done implicitly in
term_cursor_down(). I.e it was cleared as long as the cursor wasn't at
the bottom of the scrolling region
2020-07-14 10:49:44 +02:00
Daniel Eklöf
cabcc615c1
vt: change HT (horizontal tab) to *not* clear LCF
According to the specification, HT **should** clear LCF. However,
nearly all emulators do not. In particular, XTerm doesn't. So we
follow suite.
2020-07-14 10:47:17 +02:00
Daniel Eklöf
7f7ab00e11
vt: implement C0::FF - processed in the same way as C0::LF 2020-07-14 09:18:52 +02:00
Daniel Eklöf
4849a16f37
vt: process C0::VT the same way we process C0::LF
Previously, C0::VT was implemented as a simple 'cursor down'. I.e. it
would behave as LF **until** it reached the bottom of the screen,
where instead of scrolling, it became a no-op.

See https://vt100.net/docs/vt102-ug/chapter5.html
2020-07-14 09:15:15 +02:00
Daniel Eklöf
18827ebe0b
changelog: mention fix for 'too many wl_surface_damage_buffer()' calls 2020-07-13 15:10:03 +02:00
Daniel Eklöf
0bdbf45418
changelog: hollow cursor is now based on keyboard focus, not visual focus 2020-07-11 18:43:50 +02:00
Daniel Eklöf
3397e735a5
changelog: add multi-seat support 2020-07-09 09:17:42 +02:00
Daniel Eklöf
db7a51e3a4
changelog: grammar 2020-06-30 17:46:25 +02:00
Daniel Eklöf
a259eda535
config: add 'blink' option to cursor section in footrc
This option controls whether the default cursor should blink or
not. The default is to *not* blink.
2020-06-30 17:45:34 +02:00
Daniel Eklöf
7f65bd1c20
csi: '\E[0 q' resets the cursor style to the default, not '\E[2 q'
Also update 'Se' capability in the terminfo, to reflect this.
2020-06-30 17:44:43 +02:00
Daniel Eklöf
fad5838dba
Merge branch 'master' into sixel-performance 2020-06-29 22:03:26 +02:00
Daniel Eklöf
62be729c45
scroll: destroy scrolled out sixels before scroll is applied
The logic that breaks out of sixel loops does not work for rows that
has already wrapped around.

Thus, we need to destroy sixels that are about to be scrolled
out *before* we actually scroll.

Since this is the *only* time we destroy sixels (instead of
overwriting it), rename the sixel functions. And, since they now do a
very specific thing, they can be greatly simplified (and thus faster).
2020-06-29 22:01:02 +02:00
Daniel Eklöf
a136987678
reflow: ensure sixels are correctly sorted when re-inserted
And make sure to remove re-inserted sixels that has wrapped around the
scrollback (this may happen when the window size decreases).
2020-06-29 21:59:40 +02:00
Daniel Eklöf
6ee76c21f2
changelog: group sixel related changes toghether 2020-06-29 21:57:01 +02:00
Daniel Eklöf
8f5e6e85e0
sixel: destroy all sixels when font size is decreased
If changing the font size causes the cell size to decrease, either
horizontally or vertically (or both), then delete all sixels since the
grid space they allocated no longer is enough to hold the images.
2020-06-29 21:53:29 +02:00