From 065b44ff5984985c8f6da0d8a5c7298beac806b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Sat, 6 Jul 2024 00:03:14 +0800 Subject: [PATCH] Display (Linux): better zxdg manager handling --- src/detection/displayserver/linux/wayland/global-output.c | 2 +- src/detection/displayserver/linux/wayland/wayland.c | 4 ++-- src/detection/displayserver/linux/wayland/wayland.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/detection/displayserver/linux/wayland/global-output.c b/src/detection/displayserver/linux/wayland/global-output.c index 55b287afd..60a2881f9 100644 --- a/src/detection/displayserver/linux/wayland/global-output.c +++ b/src/detection/displayserver/linux/wayland/global-output.c @@ -164,7 +164,7 @@ void ffWaylandHandleGlobalOutput(WaylandData* wldata, struct wl_registry* regist ffStrbufDestroy(&display.edidName); } -void ffWaylandHandleXdgOutput(WaylandData* wldata, struct wl_registry* registry, uint32_t name, uint32_t version) +void ffWaylandHandleZxdgOutput(WaylandData* wldata, struct wl_registry* registry, uint32_t name, uint32_t version) { struct wl_proxy* manager = wldata->ffwl_proxy_marshal_constructor_versioned((struct wl_proxy*) registry, WL_REGISTRY_BIND, &zxdg_output_manager_v1_interface, version, name, zxdg_output_manager_v1_interface.name, version, NULL); if(manager == NULL) diff --git a/src/detection/displayserver/linux/wayland/wayland.c b/src/detection/displayserver/linux/wayland/wayland.c index 990df0f3b..a98f7f5cd 100644 --- a/src/detection/displayserver/linux/wayland/wayland.c +++ b/src/detection/displayserver/linux/wayland/wayland.c @@ -59,9 +59,9 @@ static void waylandGlobalAddListener(void* data, struct wl_registry* registry, u { ffWaylandHandleKdeOutputOrder(wldata, registry, name, version); } - else if(wldata->protocolType == FF_WAYLAND_PROTOCOL_TYPE_GLOBAL && ffStrEquals(interface, zxdg_output_manager_v1_interface.name)) + else if((wldata->protocolType == FF_WAYLAND_PROTOCOL_TYPE_GLOBAL || wldata->protocolType == FF_WAYLAND_PROTOCOL_TYPE_NONE) && ffStrEquals(interface, zxdg_output_manager_v1_interface.name)) { - ffWaylandHandleXdgOutput(wldata, registry, name, version); + ffWaylandHandleZxdgOutput(wldata, registry, name, version); } } diff --git a/src/detection/displayserver/linux/wayland/wayland.h b/src/detection/displayserver/linux/wayland/wayland.h index 4e3f72665..a997b4e5f 100644 --- a/src/detection/displayserver/linux/wayland/wayland.h +++ b/src/detection/displayserver/linux/wayland/wayland.h @@ -59,6 +59,6 @@ void ffWaylandHandleGlobalOutput(WaylandData* wldata, struct wl_registry* regist void ffWaylandHandleZwlrOutput(WaylandData* wldata, struct wl_registry* registry, uint32_t name, uint32_t version); void ffWaylandHandleKdeOutput(WaylandData* wldata, struct wl_registry* registry, uint32_t name, uint32_t version); void ffWaylandHandleKdeOutputOrder(WaylandData* wldata, struct wl_registry* registry, uint32_t name, uint32_t version); -void ffWaylandHandleXdgOutput(WaylandData* wldata, struct wl_registry* registry, uint32_t name, uint32_t version); +void ffWaylandHandleZxdgOutput(WaylandData* wldata, struct wl_registry* registry, uint32_t name, uint32_t version); #endif