diff --git a/docs/changelog.rst b/docs/changelog.rst index e3f09152a..8f45ada44 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -61,6 +61,8 @@ Detailed list of changes - Wayland: Fix regression in 0.34.0 causing flickering on window resize on NVIDIA drivers (:iss:`7493`) +- Wayland labwc: Fix kitty timing out waiting for compositor to quit fucking around with scales on labwc (:iss:`7540`) + 0.35.1 [2024-05-31] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/glfw/wl_window.c b/glfw/wl_window.c index 93362910a..fb0cf1532 100644 --- a/glfw/wl_window.c +++ b/glfw/wl_window.c @@ -549,7 +549,10 @@ fractional_scale_preferred_scale(void *data, struct wp_fractional_scale_v1 *wp_f debug("Fractional scale requested: %u/120 = %.2f for window %llu\n", scale, scale / 120., window->id); window->wl.fractional_scale = scale; // Hyprland sends a fraction scale = 1 event before configuring the xdg surface and then another after with the correct scale - window->wl.window_fully_created = window->wl.once.surface_configured || scale != 120; + // labwc doesnt support preferred buffer scale, so we assume it's done fucking around with scales even if the scale is 120 + // As far as I can tell from googling labwc has no way to specify scales other + // than 1 anyway, so no way to test what it will do in such cases. Sigh, more half baked Wayland shit. + window->wl.window_fully_created = window->wl.once.surface_configured || scale != 120 || !_glfw.wl.has_preferred_buffer_scale; apply_scale_changes(window, true, true); }