From b6ec34fe3a956a09eb54d25a2cf5b716bebecea1 Mon Sep 17 00:00:00 2001 From: Maarten van Gompel Date: Sun, 27 Aug 2023 12:05:30 +0200 Subject: [PATCH] fix scaling problem from "support multiple outputs" --- keyboard.c | 4 ++-- keyboard.h | 2 +- main.c | 7 ++++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/keyboard.c b/keyboard.c index 6135adb..bde1127 100644 --- a/keyboard.c +++ b/keyboard.c @@ -478,10 +478,10 @@ void kbd_resize(struct kbd *kb, struct layout *layouts, uint8_t layoutcount) { struct drwsurf *d = kb->surf; - fprintf(stderr, "Resize %dx%d %d, %d layouts\n", kb->w, kb->h, kb->s, + fprintf(stderr, "Resize %dx%d %d, %d layouts\n", kb->w, kb->h, kb->scale, layoutcount); - drwsurf_resize(d, kb->w, kb->h, kb->s); + drwsurf_resize(d, kb->w, kb->h, kb->scale); for (int i = 0; i < layoutcount; i++) { kbd_init_layout(&layouts[i], kb->w, kb->h); } diff --git a/keyboard.h b/keyboard.h index 9a6c8be..89116ea 100644 --- a/keyboard.h +++ b/keyboard.h @@ -93,7 +93,7 @@ struct kbd { bool print; bool print_intersect; - uint32_t w, h, s; + uint32_t w, h, scale; bool landscape; uint8_t mods; uint8_t compose; diff --git a/main.c b/main.c index 44825f5..1b461fc 100644 --- a/main.c +++ b/main.c @@ -270,7 +270,7 @@ wl_surface_enter(void *data, struct wl_surface *wl_surface, struct wl_output *wl_output) { for(int i = 0; i < WL_OUTPUTS_LIMIT; i += 1) { if(wl_outputs[i].data == wl_output) { - keyboard.s = wl_outputs[i].scale; + keyboard.scale = wl_outputs[i].scale; return; } } @@ -316,7 +316,8 @@ display_handle_done(void *data, struct wl_output *wl_output) {} static void display_handle_scale(void *data, struct wl_output *wl_output, int32_t scale) { - ((struct Output*)data)->scale = scale; + ((struct Output*)data)->scale = scale; + keyboard.scale = scale; } static void @@ -525,7 +526,7 @@ main(int argc, char **argv) { keyboard.scheme = scheme; keyboard.layer_index = 0; keyboard.scheme1 = scheme1; - keyboard.s = 1; + keyboard.scale = 1; int i; for (i = 1; argv[i]; i++) {