Commit graph

3375 commits

Author SHA1 Message Date
Daniel Eklöf
44db2e2d0a
changelog: move line-height entry from ‘changed’ to ‘added’ 2021-01-11 09:31:22 +01:00
Daniel Eklöf
6d0cf814bc
config: fix comment: -1 is a valid ‘px’ value 2021-01-11 09:31:09 +01:00
Daniel Eklöf
25c2379d5f
box-drawing: x/y offsets: use pre-calculated offset values from term struct 2021-01-11 09:31:09 +01:00
Daniel Eklöf
1830dfca55
term: use pt_or_px_as_pixels() 2021-01-11 09:31:08 +01:00
Daniel Eklöf
5ea37adaf4
term: add pt_or_px_as_pixels()
This function takes a ‘union pt_or_px’ and converts its value to a
pixel value.
2021-01-11 09:31:08 +01:00
Daniel Eklöf
17339410ef
doc: foot.ini: line-height, letter-spacing and offsets are in points (by default) 2021-01-11 09:31:08 +01:00
Daniel Eklöf
a6fc8b5da4
config: line-height, letter-spacing: values are in pt by default, but we allow px
If the value is specified without a unit, then the value is assumed to
be in points, subject to DPI scaling.

The value can optionally have a ‘px’ suffix, in which case the value
is treated as a raw pixel count.
2021-01-11 09:31:08 +01:00
Daniel Eklöf
4c9f593d91
config: str_to_color(): use LOG_AND_NOTIFY(), not just LOG() 2021-01-11 09:31:08 +01:00
Daniel Eklöf
a455797bf2
changelog: line-height, letter-spacing and {horizontal,vertical}-letter-offset 2021-01-11 09:31:07 +01:00
Daniel Eklöf
d1f43371bb
doc: foot.ini: document line-height, letter-spacing and letter offsets 2021-01-11 09:31:07 +01:00
Daniel Eklöf
e8b673e7b2
doc: foot.ini: put ‘shell’, ‘login-shell’ and ‘term’ first 2021-01-11 09:31:07 +01:00
Daniel Eklöf
c2be3408ed
config; {horizontal,vertical}-letter-offsets may be negative 2021-01-11 09:31:07 +01:00
Daniel Eklöf
70cfcf11fb
config: letter-spacing: make this a relative value
0, the default, means no additional spacing; the cell width is defined
by the font metrics.

A positive value *adds* to the width from the font metrics, while a
negative value *subtracts*.
2021-01-11 09:31:06 +01:00
Daniel Eklöf
389570b274
box-drawing: compensate for non-zero {horizontal,vertical}-letter-offsets
Box drawing characters should always cover the entire cell. No more,
no less.
2021-01-11 09:31:06 +01:00
Daniel Eklöf
3eba48d74b
render: offset all glyphs with {horizontal,vertical}-letter-offset 2021-01-11 09:31:06 +01:00
Daniel Eklöf
a0c359c24e
term: set_fonts: use custom line-height+letter-spacing, if set
If the user has configured a custom line-height and/or letter-spacing,
use that instead of the font metrics.
2021-01-11 09:31:06 +01:00
Daniel Eklöf
428b5ef27c
foot.ini: add new options: line-height, letter-spacing and *-letter-offset 2021-01-11 09:31:06 +01:00
Daniel Eklöf
f9c9dd2432
config: add line-height, letter-spacing, {horizontal,vertical}-letter-offset 2021-01-11 09:31:05 +01:00
Daniel Eklöf
2177bacd6f
Merge branch 'fish-completions'
Closes #11
2021-01-08 21:33:22 +01:00
FollieHiyuki
bb1b8bc7ca Add fish completion 2021-01-08 20:37:33 +03:00
Daniel Eklöf
ba48109a9b
Merge branch 'center-grid-content'
Closes #273
2021-01-07 12:08:31 +01:00
Daniel Eklöf
124759bd2c
render: sixel: fix assertion: x/y coords may be outside visible area
But when they are, width/height must be 0.
2021-01-06 16:57:07 +01:00
Daniel Eklöf
e14c592f39
config: add optional ‘center’ argument to ‘pad’
When set, the grid contents is centered in the window. I.e. the
left/right and top/bottom margins are equal (+- 1px).

This causes the content to “jump” while doing an interactive resize,
but may still be preferred in e.g. a tiling WM.

Closes #273
2021-01-06 11:17:29 +01:00
Daniel Eklöf
21dbb44a30
selection: extend-block: update pivot point and selection direction 2021-01-06 11:14:11 +01:00
Daniel Eklöf
3a34eda8cc
selection: extend: don’t copy to primary - it is done when RMB is released 2021-01-06 11:13:52 +01:00
Daniel Eklöf
b09197ea07
selection: extend: re-calculate pivot point 2021-01-06 11:07:19 +01:00
Daniel Eklöf
f236dc7701
selection: break out pivot point adjustment for character-wise selections 2021-01-06 10:54:53 +01:00
Daniel Eklöf
3a9172342f
selection: combine enum selection_kind with selection_semantic 2021-01-06 10:53:27 +01:00
Daniel Eklöf
fcca3d3e55
Merge branch 'extend-selection-by-word'
Closes #267
2021-01-04 20:27:57 +01:00
Daniel Eklöf
dc676f96ce
render: codespell: accomodate -> accommodate 2021-01-04 19:49:24 +01:00
Daniel Eklöf
fd5d68c819
extract: finish: increase ‘idx’ when pushing new data, for consistency
We don’t write anything more to the buffer after this, but this makes
this code consistent with all other code that pushes new data to the
buffer.

This makes it easier to search, and validate, the
ensure_size()+push-data pattern.
2021-01-04 19:48:44 +01:00
Daniel Eklöf
07078da0f0
extract: finish: fix bad assertion - ‘idx’ may be equal to ‘size’
‘idx’ is where _new_ data should be pushed into the buffer. Thus it is
perfectly valid for it to be equal to ‘size’ - it just means we need
to allocate more space before pushing data to it.
2021-01-04 19:48:44 +01:00
Daniel Eklöf
4849e8f874
selection: update: line-wraps are ok while moving pivot start/end point
This fixes an assertion triggered when selecting the upper left cell
and dragging down.

We would end up trying to decrement the pivot end point, hitting an
assertion that only is valid while skipping spacers.

Remove the assertion, and allow pivot points to be moved across line
wraps, but take care not to move outside the visible screen area.
2021-01-04 19:48:44 +01:00
Daniel Eklöf
56f6e450b0
selection: update: get start-row pointer *after* modifying the start row index 2021-01-04 19:48:43 +01:00
Daniel Eklöf
fb9a95494d
selection: update: simplify: multi-column chars don’t span line-wraps 2021-01-04 19:48:43 +01:00
Daniel Eklöf
2b195d2cc3
selection: wrap pivot_{start,end}->row before accessing grid row array 2021-01-04 19:48:43 +01:00
Daniel Eklöf
8113d2205d
selection: cancel: reset pivot coordinates 2021-01-04 19:48:43 +01:00
Daniel Eklöf
683f63c929
selection: update: find_word_boundary_{left,right}: coordinates are screen local 2021-01-04 19:48:43 +01:00
Daniel Eklöf
c851aae9d6
selection: find_word_boundary_{left,right}: try to make the code more readable 2021-01-04 19:48:42 +01:00
Daniel Eklöf
3863a61ba6
selection: find_word_boundary_{left,right}: handle multi-column characters 2021-01-04 19:48:42 +01:00
Daniel Eklöf
b22091a8c9
selection: find_word_boundary{left,right}: what we match depends on initial character
If the initial character is a space, find the next non-space
character.

If the initial character is a delimiter, find the next non-delimiter
character (space, or word character).

If the initial character is neither (i.e, it is a word character),
find the next non-word character.
2021-01-04 19:48:42 +01:00
Daniel Eklöf
2fd7b2fbd4
selection: allow selections to pivot around a range instead of a point
Extend selection pivoting to allow selections to pivot around a
range.

Use this in word- and row-based selections to pivot around the initial
word/row that was selected.

This mimics the behavior of at least urxvt and xterm.
2021-01-04 19:48:42 +01:00
Daniel Eklöf
c821914e67
selection: find_word_boundary{left,right}: handle composed characters 2021-01-04 19:48:41 +01:00
Daniel Eklöf
736ff0421c
selection: find_word_boundary_{left,right}: treat spacers as word chars 2021-01-04 19:48:41 +01:00
Daniel Eklöf
3afc5a723e
selection: use selection_start() to initialize word/row-based selection
This removes the selection_mark_word() and selection_mark_row()
functions. To start a word/row-based selection, use selection_start()
with SELECTION_SEMANTIC_{WORD,ROW}
2021-01-04 19:48:41 +01:00
Daniel Eklöf
3dd6b7e4ef
selection: don’t finalize selection when starting a word/row-based selection 2021-01-04 19:48:41 +01:00
Daniel Eklöf
bef69cb961
selection: remember whether word-wise selection uses spaces only for delimiters 2021-01-04 19:48:41 +01:00
Daniel Eklöf
a1b52ee4a0
changelog: double- or triple clicking then dragging extends word- or line-wise 2021-01-04 19:48:40 +01:00
Daniel Eklöf
55ecf29a36
selection: wip: update selection row-wise when initial selection was by row 2021-01-04 19:48:40 +01:00
Daniel Eklöf
30de262d29
selection: wip: update selection word-wise when initial selection was by word 2021-01-04 19:48:26 +01:00