From 95589fd4f84c60fe4441dcb9d9b3462eb6b1643f Mon Sep 17 00:00:00 2001 From: emersion Date: Sat, 10 Nov 2018 19:45:58 +0100 Subject: [PATCH] wayland: remove KDE server-decoration support --- video/out/wayland/server-decoration.xml | 94 ------------------------- video/out/wayland_common.c | 53 ++++---------- video/out/wayland_common.h | 2 - wscript_build.py | 9 --- 4 files changed, 12 insertions(+), 146 deletions(-) delete mode 100644 video/out/wayland/server-decoration.xml diff --git a/video/out/wayland/server-decoration.xml b/video/out/wayland/server-decoration.xml deleted file mode 100644 index 8bc106c7c4..0000000000 --- a/video/out/wayland/server-decoration.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - . - ]]> - - - This interface allows to coordinate whether the server should create - a server-side window decoration around a wl_surface representing a - shell surface (wl_shell_surface or similar). By announcing support - for this interface the server indicates that it supports server - side decorations. - - - - When a client creates a server-side decoration object it indicates - that it supports the protocol. The client is supposed to tell the - server whether it wants server-side decorations or will provide - client-side decorations. - - If the client does not create a server-side decoration object for - a surface the server interprets this as lack of support for this - protocol and considers it as client-side decorated. Nevertheless a - client-side decorated surface should use this protocol to indicate - to the server that it does not want a server-side deco. - - - - - - - - - - - - - This event is emitted directly after binding the interface. It contains - the default mode for the decoration. When a new server decoration object - is created this new object will be in the default mode until the first - request_mode is requested. - - The server may change the default mode at any time. - - - - - - - - - - - - - - - - - - - - - This event is emitted directly after the decoration is created and - represents the base decoration policy by the server. E.g. a server - which wants all surfaces to be client-side decorated will send Client, - a server which wants server-side decoration will send Server. - - The client can request a different mode through the decoration request. - The server will acknowledge this by another event with the same mode. So - even if a server prefers server-side decoration it's possible to force a - client-side decoration. - - The server may emit this event at any time. In this case the client can - again request a different mode. It's the responsibility of the server to - prevent a feedback loop. - - - - - diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c index 1e0659fc8f..45071c8f35 100644 --- a/video/out/wayland_common.c +++ b/video/out/wayland_common.c @@ -35,9 +35,6 @@ // Generated from xdg-decoration-unstable-v1.xml #include "video/out/wayland/xdg-decoration-v1.h" -// Generated from server-decoration.xml -#include "video/out/wayland/srv-decor.h" - static void xdg_shell_ping(void *data, struct xdg_wm_base *shell, uint32_t serial) { xdg_wm_base_pong(shell, serial); @@ -826,10 +823,6 @@ static void registry_handle_add(void *data, struct wl_registry *reg, uint32_t id wl->dnd_devman = wl_registry_bind(reg, id, &wl_data_device_manager_interface, 3); } - if (!strcmp(interface, org_kde_kwin_server_decoration_manager_interface.name) && found++) { - wl->server_decoration_manager = wl_registry_bind(reg, id, &org_kde_kwin_server_decoration_manager_interface, 1); - } - if (!strcmp(interface, zxdg_decoration_manager_v1_interface.name) && found++) { wl->xdg_decoration_manager = wl_registry_bind(reg, id, &zxdg_decoration_manager_v1_interface, 1); } @@ -977,31 +970,19 @@ static int create_xdg_surface(struct vo_wayland_state *wl) static int set_border_decorations(struct vo_wayland_state *wl, int state) { - if (wl->xdg_toplevel_decoration) { - enum zxdg_toplevel_decoration_v1_mode mode; - if (state) { - MP_VERBOSE(wl, "Enabling server decorations\n"); - mode = ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE; - } else { - MP_VERBOSE(wl, "Disabling server decorations\n"); - mode = ZXDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE; - } - zxdg_toplevel_decoration_v1_set_mode(wl->xdg_toplevel_decoration, mode); - return VO_TRUE; - } else if (wl->server_decoration) { - enum org_kde_kwin_server_decoration_mode mode; - if (state) { - MP_VERBOSE(wl, "Enabling server decorations\n"); - mode = ORG_KDE_KWIN_SERVER_DECORATION_MODE_SERVER; - } else { - MP_VERBOSE(wl, "Disabling server decorations\n"); - mode = ORG_KDE_KWIN_SERVER_DECORATION_MODE_NONE; - } - org_kde_kwin_server_decoration_request_mode(wl->server_decoration, mode); - return VO_TRUE; - } else { + if (!wl->xdg_toplevel_decoration) return VO_NOTIMPL; + + enum zxdg_toplevel_decoration_v1_mode mode; + if (state) { + MP_VERBOSE(wl, "Enabling server decorations\n"); + mode = ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE; + } else { + MP_VERBOSE(wl, "Disabling server decorations\n"); + mode = ZXDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE; } + zxdg_toplevel_decoration_v1_set_mode(wl->xdg_toplevel_decoration, mode); + return VO_TRUE; } int vo_wayland_init(struct vo *vo) @@ -1059,12 +1040,8 @@ int vo_wayland_init(struct vo *vo) if (wl->xdg_decoration_manager) { wl->xdg_toplevel_decoration = zxdg_decoration_manager_v1_get_toplevel_decoration(wl->xdg_decoration_manager, wl->xdg_toplevel); set_border_decorations(wl, vo->opts->border); - } else if (wl->server_decoration_manager) { - wl->server_decoration = org_kde_kwin_server_decoration_manager_create(wl->server_decoration_manager, wl->surface); - set_border_decorations(wl, vo->opts->border); } else { - MP_VERBOSE(wl, "Compositor doesn't support the %s or %s protocols!\n", - org_kde_kwin_server_decoration_manager_interface.name, + MP_VERBOSE(wl, "Compositor doesn't support the %s protocol!\n", zxdg_decoration_manager_v1_interface.name); } @@ -1110,12 +1087,6 @@ void vo_wayland_uninit(struct vo *vo) if (wl->dnd_devman) wl_data_device_manager_destroy(wl->dnd_devman); - if (wl->server_decoration) - org_kde_kwin_server_decoration_destroy(wl->server_decoration); - - if (wl->server_decoration_manager) - org_kde_kwin_server_decoration_manager_destroy(wl->server_decoration_manager); - if (wl->xdg_toplevel_decoration) zxdg_toplevel_decoration_v1_destroy(wl->xdg_toplevel_decoration); diff --git a/video/out/wayland_common.h b/video/out/wayland_common.h index 77479bd840..b381d7c46f 100644 --- a/video/out/wayland_common.h +++ b/video/out/wayland_common.h @@ -73,8 +73,6 @@ struct vo_wayland_state { struct xdg_wm_base *shell; struct xdg_toplevel *xdg_toplevel; struct xdg_surface *xdg_surface; - struct org_kde_kwin_server_decoration_manager *server_decoration_manager; - struct org_kde_kwin_server_decoration *server_decoration; struct zxdg_decoration_manager_v1 *xdg_decoration_manager; struct zxdg_toplevel_decoration_v1 *xdg_toplevel_decoration; struct zwp_idle_inhibit_manager_v1 *idle_inhibit_manager; diff --git a/wscript_build.py b/wscript_build.py index e135a01e6d..2b75383e34 100644 --- a/wscript_build.py +++ b/wscript_build.py @@ -135,14 +135,6 @@ def build(ctx): ctx.wayland_protocol_header(proto_dir = ctx.env.WL_PROTO_DIR, protocol = "unstable/xdg-decoration/xdg-decoration-unstable-v1", target = "video/out/wayland/xdg-decoration-v1.h") - ctx.wayland_protocol_code(proto_dir = "video/out/wayland", - protocol = "server-decoration", - vendored_protocol = True, - target = "video/out/wayland/srv-decor.c") - ctx.wayland_protocol_header(proto_dir = "video/out/wayland", - protocol = "server-decoration", - vendored_protocol = True, - target = "video/out/wayland/srv-decor.h") ctx(features = "ebml_header", target = "ebml_types.h") ctx(features = "ebml_definitions", target = "ebml_defs.c") @@ -513,7 +505,6 @@ def build(ctx): ( "video/out/vulkan/utils.c", "vulkan" ), ( "video/out/w32_common.c", "win32-desktop" ), ( "video/out/wayland/idle-inhibit-v1.c", "wayland" ), - ( "video/out/wayland/srv-decor.c", "wayland" ), ( "video/out/wayland/xdg-decoration-v1.c", "wayland" ), ( "video/out/wayland/xdg-shell.c", "wayland" ), ( "video/out/wayland_common.c", "wayland" ),