diff --git a/include/sway/decoration.h b/include/sway/decoration.h deleted file mode 100644 index 7916746e6..000000000 --- a/include/sway/decoration.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _SWAY_DECORATION_H -#define _SWAY_DECORATION_H - -#include - -struct sway_server_decoration { - struct wlr_server_decoration *wlr_server_decoration; - struct wl_list link; - - struct wl_listener destroy; - struct wl_listener mode; -}; - -struct sway_server_decoration *decoration_from_surface( - struct wlr_surface *surface); - -#endif diff --git a/include/sway/server.h b/include/sway/server.h index 978f05d0a..0c5467814 100644 --- a/include/sway/server.h +++ b/include/sway/server.h @@ -67,10 +67,6 @@ struct sway_server { struct wlr_relative_pointer_manager_v1 *relative_pointer_manager; - struct wlr_server_decoration_manager *server_decoration_manager; - struct wl_listener server_decoration; - struct wl_list decorations; // sway_server_decoration::link - struct wlr_xdg_decoration_manager_v1 *xdg_decoration_manager; struct wl_listener xdg_decoration; struct wl_list xdg_decorations; // sway_xdg_decoration::link @@ -182,7 +178,6 @@ void handle_xdg_shell_toplevel(struct wl_listener *listener, void *data); #if WLR_HAS_XWAYLAND void handle_xwayland_surface(struct wl_listener *listener, void *data); #endif -void handle_server_decoration(struct wl_listener *listener, void *data); void handle_xdg_decoration(struct wl_listener *listener, void *data); void handle_pointer_constraint(struct wl_listener *listener, void *data); void xdg_activation_v1_handle_request_activate(struct wl_listener *listener, diff --git a/sway/decoration.c b/sway/decoration.c deleted file mode 100644 index 849fa89c9..000000000 --- a/sway/decoration.c +++ /dev/null @@ -1,65 +0,0 @@ -#include -#include "sway/decoration.h" -#include "sway/desktop/transaction.h" -#include "sway/server.h" -#include "sway/tree/arrange.h" -#include "sway/tree/view.h" -#include "log.h" - -static void server_decoration_handle_destroy(struct wl_listener *listener, - void *data) { - struct sway_server_decoration *deco = - wl_container_of(listener, deco, destroy); - wl_list_remove(&deco->destroy.link); - wl_list_remove(&deco->mode.link); - wl_list_remove(&deco->link); - free(deco); -} - -static void server_decoration_handle_mode(struct wl_listener *listener, - void *data) { - struct sway_server_decoration *deco = - wl_container_of(listener, deco, mode); - struct sway_view *view = - view_from_wlr_surface(deco->wlr_server_decoration->surface); - if (view == NULL || view->surface != deco->wlr_server_decoration->surface) { - return; - } - - bool csd = deco->wlr_server_decoration->mode == - WLR_SERVER_DECORATION_MANAGER_MODE_CLIENT; - view_update_csd_from_client(view, csd); - - arrange_container(view->container); - transaction_commit_dirty(); -} - -void handle_server_decoration(struct wl_listener *listener, void *data) { - struct wlr_server_decoration *wlr_deco = data; - - struct sway_server_decoration *deco = calloc(1, sizeof(*deco)); - if (deco == NULL) { - return; - } - - deco->wlr_server_decoration = wlr_deco; - - wl_signal_add(&wlr_deco->events.destroy, &deco->destroy); - deco->destroy.notify = server_decoration_handle_destroy; - - wl_signal_add(&wlr_deco->events.mode, &deco->mode); - deco->mode.notify = server_decoration_handle_mode; - - wl_list_insert(&server.decorations, &deco->link); -} - -struct sway_server_decoration *decoration_from_surface( - struct wlr_surface *surface) { - struct sway_server_decoration *deco; - wl_list_for_each(deco, &server.decorations, link) { - if (deco->wlr_server_decoration->surface == surface) { - return deco; - } - } - return NULL; -} diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c index 7217e1369..65d8a88fb 100644 --- a/sway/desktop/xdg_shell.c +++ b/sway/desktop/xdg_shell.c @@ -6,7 +6,6 @@ #include #include #include "log.h" -#include "sway/decoration.h" #include "sway/scene_descriptor.h" #include "sway/desktop/transaction.h" #include "sway/input/cursor.h" @@ -481,17 +480,12 @@ static void handle_map(struct wl_listener *listener, void *data) { view->natural_width = toplevel->base->geometry.width; view->natural_height = toplevel->base->geometry.height; - bool csd = false; + bool csd = true; if (view->xdg_decoration) { enum wlr_xdg_toplevel_decoration_v1_mode mode = view->xdg_decoration->wlr_xdg_decoration->requested_mode; csd = mode == WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE; - } else { - struct sway_server_decoration *deco = - decoration_from_surface(toplevel->base->surface); - csd = !deco || deco->wlr_server_decoration->mode == - WLR_SERVER_DECORATION_MANAGER_MODE_CLIENT; } view_map(view, toplevel->base->surface, diff --git a/sway/meson.build b/sway/meson.build index cb03a4d28..ee635063b 100644 --- a/sway/meson.build +++ b/sway/meson.build @@ -2,7 +2,6 @@ sway_sources = files( 'commands.c', 'config.c', 'criteria.c', - 'decoration.c', 'ipc-json.c', 'ipc-server.c', 'lock.c', diff --git a/sway/server.c b/sway/server.c index aef0d0b0c..bce470c5f 100644 --- a/sway/server.c +++ b/sway/server.c @@ -38,7 +38,6 @@ #include #include #include -#include #include #include #include @@ -324,16 +323,6 @@ bool server_init(struct sway_server *server) { server->tablet_v2 = wlr_tablet_v2_create(server->wl_display); - server->server_decoration_manager = - wlr_server_decoration_manager_create(server->wl_display); - wlr_server_decoration_manager_set_default_mode( - server->server_decoration_manager, - WLR_SERVER_DECORATION_MANAGER_MODE_SERVER); - wl_signal_add(&server->server_decoration_manager->events.new_decoration, - &server->server_decoration); - server->server_decoration.notify = handle_server_decoration; - wl_list_init(&server->decorations); - server->xdg_decoration_manager = wlr_xdg_decoration_manager_v1_create(server->wl_display); wl_signal_add( @@ -526,7 +515,6 @@ void server_fini(struct sway_server *server) { wl_list_remove(&server->new_output.link); wl_list_remove(&server->layer_shell_surface.link); wl_list_remove(&server->xdg_shell_toplevel.link); - wl_list_remove(&server->server_decoration.link); wl_list_remove(&server->xdg_decoration.link); wl_list_remove(&server->pointer_constraint.link); wl_list_remove(&server->output_manager_apply.link); diff --git a/sway/tree/view.c b/sway/tree/view.c index eab2a5e2b..b3fd30f18 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include