render: best-effort attempt to set initial window size in chars when scale != 1

The initial window size is set *before* we’re initially mapped. This
means we don’t (yet) know on which output we’ll be mapped. _That_
means we don’t know which scaling factor to use.

This implements a best effort attempt, where we use the “guessed”
scaling factor. This will always be correct in single-monitor
configurations, but may be wrong in multi-monitor setups with
different scaling factors.
This commit is contained in:
Daniel Eklöf 2020-09-14 17:34:04 +02:00
parent 51a7e44fa2
commit fdfdbba9a0
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 15 additions and 7 deletions

View file

@ -2023,7 +2023,7 @@ maybe_resize(struct terminal *term, int width, int height, bool force)
if (scale == -1) {
/* Haven't 'entered' an output yet? */
scale = 1;
scale = term->scale;
}
width *= scale;
@ -2050,18 +2050,19 @@ maybe_resize(struct terminal *term, int width, int height, bool force)
assert(!term->window->is_fullscreen);
height -= term->conf->csd.title_height;
}
width *= scale;
height *= scale;
break;
case CONF_SIZE_CELLS:
width = 2 * term->conf->pad_x;
height = 2 * term->conf->pad_y;
width = 2 * term->conf->pad_x * scale;
height = 2 * term->conf->pad_y * scale;
width += term->conf->size.cells.width * term->cell_width;
height += term->conf->size.cells.height * term->cell_height;
break;
}
width *= scale;
height *= scale;
}
}