mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-18 22:05:25 -05:00
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
This commit is contained in:
parent
21dbb44a30
commit
e14c592f39
6 changed files with 44 additions and 8 deletions
18
render.c
18
render.c
|
|
@ -2638,10 +2638,20 @@ maybe_resize(struct terminal *term, int width, int height, bool force)
|
|||
assert(new_rows >= 1);
|
||||
|
||||
/* Margins */
|
||||
term->margins.left = pad_x;
|
||||
term->margins.top = pad_y;
|
||||
term->margins.right = term->width - new_cols * term->cell_width - term->margins.left;
|
||||
term->margins.bottom = term->height - new_rows * term->cell_height - term->margins.top;
|
||||
const int grid_width = new_cols * term->cell_width;
|
||||
const int grid_height = new_rows * term->cell_height;
|
||||
const int total_x_pad = term->width - grid_width;
|
||||
const int total_y_pad = term->height - grid_height;
|
||||
|
||||
if (term->conf->center) {
|
||||
term->margins.left = total_x_pad / 2;
|
||||
term->margins.top = total_y_pad / 2;
|
||||
} else {
|
||||
term->margins.left = pad_x;
|
||||
term->margins.top = pad_y;
|
||||
}
|
||||
term->margins.right = total_x_pad - term->margins.left;
|
||||
term->margins.bottom = total_y_pad - term->margins.top;
|
||||
|
||||
assert(term->margins.left >= pad_x);
|
||||
assert(term->margins.right >= pad_x);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue