main: initialize scale to '1'

This ensures we always have a valid (but possibly incorrect) scaling
value. This allows us to simplify code that uses the scale - it
doesn't have to verify the scale if valid.

Furthermore, since render_resize() is the function that actually
updates term->scale, make sure to call it *before* updating the
cursor (otherwise, the cursor will use the old scaling value).
This commit is contained in:
Daniel Eklöf 2019-09-26 18:39:49 +02:00
parent 7323f18859
commit 2d6369482e
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 7 additions and 22 deletions

10
main.c
View file

@ -138,9 +138,8 @@ output_scale(void *data, struct wl_output *wl_output, int32_t factor)
struct monitor *mon = data;
mon->scale = factor;
int old_scale = mon->term->scale >= 1 ? mon->term->scale : 1;
render_resize(mon->term, mon->term->width / mon->term->scale, mon->term->height / mon->term->scale);
render_reload_cursor_theme(mon->term);
render_resize(mon->term, mon->term->width / old_scale, mon->term->height / old_scale);
}
static const struct wl_output_listener output_listener = {
@ -280,9 +279,8 @@ surface_enter(void *data, struct wl_surface *wl_surface,
tll_push_back(term->wl.on_outputs, &it->item);
/* Resize, since scale-to-use may have changed */
int scale = term->scale >= 1 ? term->scale : 1;
render_resize(term, term->width / term->scale, term->height / term->scale);
render_reload_cursor_theme(term);
render_resize(term, term->width / scale, term->height / scale);
return;
}
}
@ -303,9 +301,8 @@ surface_leave(void *data, struct wl_surface *wl_surface,
tll_remove(term->wl.on_outputs, it);
/* Resize, since scale-to-use may have changed */
int scale = term->scale >= 1 ? term->scale : 1;
render_resize(term, term->width / term->scale, term->height / term->scale);
render_reload_cursor_theme(term);
render_resize(term, term->width / scale, term->height / scale);
return;
}
@ -502,6 +499,7 @@ main(int argc, char *const *argv)
.keypad_keys_mode = KEYPAD_NUMERICAL,
.auto_margin = true,
.window_title_stack = tll_init(),
.scale = 1,
.flash = {
.fd = timerfd_create(CLOCK_BOOTTIME, TFD_CLOEXEC | TFD_NONBLOCK),
},