diff --git a/main.c b/main.c index 3b1f4d6..89623cf 100644 --- a/main.c +++ b/main.c @@ -328,9 +328,11 @@ handle_global_remove(void *data, struct wl_registry *registry, uint32_t name) {} void layer_surface_configure(void *data, struct zwlr_layer_surface_v1 *surface, uint32_t serial, uint32_t w, uint32_t h) { - keyboard.w = w + KBD_PIXEL_OVERSCAN_WIDTH; - keyboard.h = h; - kbd_resize(&keyboard, layouts, NumLayouts); + if ( keyboard.w != w + KBD_PIXEL_OVERSCAN_WIDTH || keyboard.h != h ) { + keyboard.w = w + KBD_PIXEL_OVERSCAN_WIDTH; + keyboard.h = h; + kbd_resize(&keyboard, layouts, NumLayouts); + } zwlr_layer_surface_v1_ack_configure(surface, serial); }