Assume all capabilities on compositors that dont support reporting of capabilities

This commit is contained in:
Kovid Goyal
2024-04-06 10:59:28 +05:30
parent 4f6faddbab
commit 235b8dc2e4
3 changed files with 9 additions and 5 deletions

5
glfw/wl_init.c vendored
View File

@@ -675,10 +675,11 @@ static void registryHandleGlobal(void* data UNUSED,
}
else if (is(xdg_wm_base))
{
_glfw.wl.xdg_wm_base_version = 1;
#ifdef XDG_TOPLEVEL_WM_CAPABILITIES_SINCE_VERSION
version = min(XDG_TOPLEVEL_WM_CAPABILITIES_SINCE_VERSION, version);
_glfw.wl.xdg_wm_base_version = min(XDG_TOPLEVEL_WM_CAPABILITIES_SINCE_VERSION, version);
#endif
_glfw.wl.wmBase = wl_registry_bind(registry, name, &xdg_wm_base_interface, version);
_glfw.wl.wmBase = wl_registry_bind(registry, name, &xdg_wm_base_interface, _glfw.wl.xdg_wm_base_version);
xdg_wm_base_add_listener(_glfw.wl.wmBase, &wmBaseListener, NULL);
}
else if (is(zxdg_decoration_manager_v1))

1
glfw/wl_platform.h vendored
View File

@@ -307,6 +307,7 @@ typedef struct _GLFWlibraryWayland
struct wl_data_device_manager* dataDeviceManager;
struct wl_data_device* dataDevice;
struct xdg_wm_base* wmBase;
int xdg_wm_base_version;
struct zxdg_decoration_manager_v1* decorationManager;
struct zwp_relative_pointer_manager_v1* relativePointerManager;
struct zwp_pointer_constraints_v1* pointerConstraints;

8
glfw/wl_window.c vendored
View File

@@ -1068,9 +1068,11 @@ create_window_desktop_surface(_GLFWwindow* window)
return false;
}
xdg_toplevel_add_listener(window->wl.xdg.toplevel,
&xdgToplevelListener,
window);
#ifdef XDG_TOPLEVEL_WM_CAPABILITIES_SINCE_VERSION
if (_glfw.wl.xdg_wm_base_version < XDG_TOPLEVEL_WM_CAPABILITIES_SINCE_VERSION)
memset(&window->wl.wm_capabilities, 0xff, sizeof(window->wl.wm_capabilities));
#endif
xdg_toplevel_add_listener(window->wl.xdg.toplevel, &xdgToplevelListener, window);
if (_glfw.wl.decorationManager) {
window->wl.xdg.decoration = zxdg_decoration_manager_v1_get_toplevel_decoration(
_glfw.wl.decorationManager, window->wl.xdg.toplevel);