From 7488d33d42cfc29c5fbeb02888b1d718bd84d4d0 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Sun, 18 Aug 2019 23:16:00 +0300 Subject: [PATCH] Remove xdg-shell v6 support All major toolkits and apps have gained xdg-shell stable support. Closes: https://github.com/swaywm/sway/issues/3690 --- include/sway/server.h | 5 - include/sway/tree/view.h | 30 --- protocols/meson.build | 1 - sway/desktop/xdg_shell_v6.c | 508 ------------------------------------ sway/meson.build | 1 - sway/server.c | 5 - sway/tree/container.c | 20 -- sway/tree/view.c | 7 - 8 files changed, 577 deletions(-) delete mode 100644 sway/desktop/xdg_shell_v6.c diff --git a/include/sway/server.h b/include/sway/server.h index 7cbca4f2..a43cbf72 100644 --- a/include/sway/server.h +++ b/include/sway/server.h @@ -12,7 +12,6 @@ #include #include #include -#include #include #include "config.h" #include "list.h" @@ -42,9 +41,6 @@ struct sway_server { struct wlr_layer_shell_v1 *layer_shell; struct wl_listener layer_shell_surface; - struct wlr_xdg_shell_v6 *xdg_shell_v6; - struct wl_listener xdg_shell_v6_surface; - struct wlr_xdg_shell *xdg_shell; struct wl_listener xdg_shell_surface; @@ -105,7 +101,6 @@ void handle_new_output(struct wl_listener *listener, void *data); void handle_idle_inhibitor_v1(struct wl_listener *listener, void *data); void handle_layer_shell_surface(struct wl_listener *listener, void *data); -void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data); void handle_xdg_shell_surface(struct wl_listener *listener, void *data); #if HAVE_XWAYLAND void handle_xwayland_surface(struct wl_listener *listener, void *data); diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index d9f5b8f2..44cd4a7b 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h @@ -2,7 +2,6 @@ #define _SWAY_VIEW_H #include #include -#include #include "config.h" #if HAVE_XWAYLAND #include @@ -14,7 +13,6 @@ struct sway_container; struct sway_xdg_decoration; enum sway_view_type { - SWAY_VIEW_XDG_SHELL_V6, SWAY_VIEW_XDG_SHELL, #if HAVE_XWAYLAND SWAY_VIEW_XWAYLAND, @@ -98,7 +96,6 @@ struct sway_view { list_t *executed_criteria; // struct criteria * union { - struct wlr_xdg_surface_v6 *wlr_xdg_surface_v6; struct wlr_xdg_surface *wlr_xdg_surface; #if HAVE_XWAYLAND struct wlr_xwayland_surface *wlr_xwayland_surface; @@ -113,22 +110,6 @@ struct sway_view { struct wl_listener surface_new_subsurface; }; -struct sway_xdg_shell_v6_view { - struct sway_view view; - - struct wl_listener commit; - struct wl_listener request_move; - struct wl_listener request_resize; - struct wl_listener request_maximize; - struct wl_listener request_fullscreen; - struct wl_listener set_title; - struct wl_listener set_app_id; - struct wl_listener new_popup; - struct wl_listener map; - struct wl_listener unmap; - struct wl_listener destroy; -}; - struct sway_xdg_shell_view { struct sway_view view; @@ -214,15 +195,6 @@ struct sway_subsurface { struct wl_listener destroy; }; -struct sway_xdg_popup_v6 { - struct sway_view_child child; - - struct wlr_xdg_surface_v6 *wlr_xdg_surface_v6; - - struct wl_listener new_popup; - struct wl_listener destroy; -}; - struct sway_xdg_popup { struct sway_view_child child; @@ -332,8 +304,6 @@ void view_child_destroy(struct sway_view_child *child); struct sway_view *view_from_wlr_xdg_surface( struct wlr_xdg_surface *xdg_surface); -struct sway_view *view_from_wlr_xdg_surface_v6( - struct wlr_xdg_surface_v6 *xdg_surface_v6); #if HAVE_XWAYLAND struct sway_view *view_from_wlr_xwayland_surface( struct wlr_xwayland_surface *xsurface); diff --git a/protocols/meson.build b/protocols/meson.build index 2a6cea09..4ba6f723 100644 --- a/protocols/meson.build +++ b/protocols/meson.build @@ -12,7 +12,6 @@ endif protocols = [ [wl_protocol_dir, 'stable/xdg-shell/xdg-shell.xml'], - [wl_protocol_dir, 'unstable/xdg-shell/xdg-shell-unstable-v6.xml'], [wl_protocol_dir, 'unstable/xdg-output/xdg-output-unstable-v1.xml'], [wl_protocol_dir, 'unstable/pointer-constraints/pointer-constraints-unstable-v1.xml'], ['wlr-layer-shell-unstable-v1.xml'], diff --git a/sway/desktop/xdg_shell_v6.c b/sway/desktop/xdg_shell_v6.c deleted file mode 100644 index 0c6ab7dc..00000000 --- a/sway/desktop/xdg_shell_v6.c +++ /dev/null @@ -1,508 +0,0 @@ -#define _POSIX_C_SOURCE 199309L -#include -#include -#include -#include -#include -#include "log.h" -#include "sway/decoration.h" -#include "sway/desktop.h" -#include "sway/desktop/transaction.h" -#include "sway/input/cursor.h" -#include "sway/input/input-manager.h" -#include "sway/input/seat.h" -#include "sway/output.h" -#include "sway/tree/arrange.h" -#include "sway/tree/container.h" -#include "sway/tree/view.h" -#include "sway/tree/workspace.h" - -static const struct sway_view_child_impl popup_impl; - -static void popup_get_root_coords(struct sway_view_child *child, - int *root_sx, int *root_sy) { - struct sway_xdg_popup_v6 *popup = (struct sway_xdg_popup_v6 *)child; - struct wlr_xdg_surface_v6 *surface = popup->wlr_xdg_surface_v6; - - int x_offset = -child->view->geometry.x - surface->geometry.x; - int y_offset = -child->view->geometry.y - surface->geometry.y; - - wlr_xdg_popup_v6_get_toplevel_coords(surface->popup, - x_offset + surface->popup->geometry.x, - y_offset + surface->popup->geometry.y, - root_sx, root_sy); -} - -static void popup_destroy(struct sway_view_child *child) { - if (!sway_assert(child->impl == &popup_impl, - "Expected an xdg_shell_v6 popup")) { - return; - } - struct sway_xdg_popup_v6 *popup = (struct sway_xdg_popup_v6 *)child; - wl_list_remove(&popup->new_popup.link); - wl_list_remove(&popup->destroy.link); - free(popup); -} - -static const struct sway_view_child_impl popup_impl = { - .get_root_coords = popup_get_root_coords, - .destroy = popup_destroy, -}; - -static struct sway_xdg_popup_v6 *popup_create( - struct wlr_xdg_popup_v6 *wlr_popup, struct sway_view *view); - -static void popup_handle_new_popup(struct wl_listener *listener, void *data) { - struct sway_xdg_popup_v6 *popup = - wl_container_of(listener, popup, new_popup); - struct wlr_xdg_popup_v6 *wlr_popup = data; - popup_create(wlr_popup, popup->child.view); -} - -static void popup_handle_destroy(struct wl_listener *listener, void *data) { - struct sway_xdg_popup_v6 *popup = wl_container_of(listener, popup, destroy); - view_child_destroy(&popup->child); -} - -static void popup_unconstrain(struct sway_xdg_popup_v6 *popup) { - struct sway_view *view = popup->child.view; - struct wlr_xdg_popup_v6 *wlr_popup = popup->wlr_xdg_surface_v6->popup; - - struct sway_output *output = view->container->workspace->output; - - // the output box expressed in the coordinate system of the toplevel parent - // of the popup - struct wlr_box output_toplevel_sx_box = { - .x = output->lx - view->container->content_x, - .y = output->ly - view->container->content_y, - .width = output->width, - .height = output->height, - }; - - wlr_xdg_popup_v6_unconstrain_from_box(wlr_popup, &output_toplevel_sx_box); -} - -static struct sway_xdg_popup_v6 *popup_create( - struct wlr_xdg_popup_v6 *wlr_popup, struct sway_view *view) { - struct wlr_xdg_surface_v6 *xdg_surface = wlr_popup->base; - - struct sway_xdg_popup_v6 *popup = - calloc(1, sizeof(struct sway_xdg_popup_v6)); - if (popup == NULL) { - return NULL; - } - view_child_init(&popup->child, &popup_impl, view, xdg_surface->surface); - popup->wlr_xdg_surface_v6 = xdg_surface; - - wl_signal_add(&xdg_surface->events.new_popup, &popup->new_popup); - popup->new_popup.notify = popup_handle_new_popup; - wl_signal_add(&xdg_surface->events.destroy, &popup->destroy); - popup->destroy.notify = popup_handle_destroy; - - wl_signal_add(&xdg_surface->events.map, &popup->child.surface_map); - wl_signal_add(&xdg_surface->events.unmap, &popup->child.surface_unmap); - - popup_unconstrain(popup); - - return popup; -} - - -static struct sway_xdg_shell_v6_view *xdg_shell_v6_view_from_view( - struct sway_view *view) { - if (!sway_assert(view->type == SWAY_VIEW_XDG_SHELL_V6, - "Expected xdg_shell_v6 view")) { - return NULL; - } - return (struct sway_xdg_shell_v6_view *)view; -} - -static void get_constraints(struct sway_view *view, double *min_width, - double *max_width, double *min_height, double *max_height) { - struct wlr_xdg_toplevel_v6_state *state = - &view->wlr_xdg_surface_v6->toplevel->current; - *min_width = state->min_width > 0 ? state->min_width : DBL_MIN; - *max_width = state->max_width > 0 ? state->max_width : DBL_MAX; - *min_height = state->min_height > 0 ? state->min_height : DBL_MIN; - *max_height = state->max_height > 0 ? state->max_height : DBL_MAX; -} - -static const char *get_string_prop(struct sway_view *view, - enum sway_view_prop prop) { - if (xdg_shell_v6_view_from_view(view) == NULL) { - return NULL; - } - switch (prop) { - case VIEW_PROP_TITLE: - return view->wlr_xdg_surface_v6->toplevel->title; - case VIEW_PROP_APP_ID: - return view->wlr_xdg_surface_v6->toplevel->app_id; - default: - return NULL; - } -} - -static uint32_t configure(struct sway_view *view, double lx, double ly, - int width, int height) { - struct sway_xdg_shell_v6_view *xdg_shell_v6_view = - xdg_shell_v6_view_from_view(view); - if (xdg_shell_v6_view == NULL) { - return 0; - } - return wlr_xdg_toplevel_v6_set_size( - view->wlr_xdg_surface_v6, width, height); -} - -static void set_activated(struct sway_view *view, bool activated) { - if (xdg_shell_v6_view_from_view(view) == NULL) { - return; - } - struct wlr_xdg_surface_v6 *surface = view->wlr_xdg_surface_v6; - if (surface->role == WLR_XDG_SURFACE_V6_ROLE_TOPLEVEL) { - wlr_xdg_toplevel_v6_set_activated(surface, activated); - } -} - -static void set_tiled(struct sway_view *view, bool tiled) { - if (xdg_shell_v6_view_from_view(view) == NULL) { - return; - } - struct wlr_xdg_surface_v6 *surface = view->wlr_xdg_surface_v6; - wlr_xdg_toplevel_v6_set_maximized(surface, tiled); -} - -static void set_fullscreen(struct sway_view *view, bool fullscreen) { - if (xdg_shell_v6_view_from_view(view) == NULL) { - return; - } - struct wlr_xdg_surface_v6 *surface = view->wlr_xdg_surface_v6; - wlr_xdg_toplevel_v6_set_fullscreen(surface, fullscreen); -} - -static bool wants_floating(struct sway_view *view) { - struct wlr_xdg_toplevel_v6 *toplevel = - view->wlr_xdg_surface_v6->toplevel; - struct wlr_xdg_toplevel_v6_state *state = &toplevel->current; - return (state->min_width != 0 && state->min_height != 0 - && (state->min_width == state->max_width - || state->min_height == state->max_height)) - || toplevel->parent; -} - -static void for_each_surface(struct sway_view *view, - wlr_surface_iterator_func_t iterator, void *user_data) { - if (xdg_shell_v6_view_from_view(view) == NULL) { - return; - } - wlr_xdg_surface_v6_for_each_surface(view->wlr_xdg_surface_v6, iterator, - user_data); -} - -static void for_each_popup(struct sway_view *view, - wlr_surface_iterator_func_t iterator, void *user_data) { - if (xdg_shell_v6_view_from_view(view) == NULL) { - return; - } - wlr_xdg_surface_v6_for_each_popup(view->wlr_xdg_surface_v6, iterator, - user_data); -} - -static bool is_transient_for(struct sway_view *child, - struct sway_view *ancestor) { - if (xdg_shell_v6_view_from_view(child) == NULL) { - return false; - } - struct wlr_xdg_surface_v6 *surface = child->wlr_xdg_surface_v6; - while (surface && surface->role == WLR_XDG_SURFACE_V6_ROLE_TOPLEVEL) { - if (surface->toplevel->parent == ancestor->wlr_xdg_surface_v6) { - return true; - } - surface = surface->toplevel->parent; - } - return false; -} - -static void _close(struct sway_view *view) { - if (xdg_shell_v6_view_from_view(view) == NULL) { - return; - } - struct wlr_xdg_surface_v6 *surface = view->wlr_xdg_surface_v6; - if (surface->role == WLR_XDG_SURFACE_V6_ROLE_TOPLEVEL) { - wlr_xdg_surface_v6_send_close(surface); - } -} - -static void close_popups_iterator(struct wlr_surface *surface, - int sx, int sy, void *data) { - struct wlr_xdg_surface_v6 *xdg_surface_v6 = - wlr_xdg_surface_v6_from_wlr_surface(surface); - wlr_xdg_surface_v6_send_close(xdg_surface_v6); -} - -static void close_popups(struct sway_view *view) { - wlr_xdg_surface_v6_for_each_popup(view->wlr_xdg_surface_v6, - close_popups_iterator, NULL); -} - -static void destroy(struct sway_view *view) { - struct sway_xdg_shell_v6_view *xdg_shell_v6_view = - xdg_shell_v6_view_from_view(view); - if (xdg_shell_v6_view == NULL) { - return; - } - free(xdg_shell_v6_view); -} - -static const struct sway_view_impl view_impl = { - .get_constraints = get_constraints, - .get_string_prop = get_string_prop, - .configure = configure, - .set_activated = set_activated, - .set_tiled = set_tiled, - .set_fullscreen = set_fullscreen, - .wants_floating = wants_floating, - .for_each_surface = for_each_surface, - .for_each_popup = for_each_popup, - .is_transient_for = is_transient_for, - .close = _close, - .close_popups = close_popups, - .destroy = destroy, -}; - -static void handle_commit(struct wl_listener *listener, void *data) { - struct sway_xdg_shell_v6_view *xdg_shell_v6_view = - wl_container_of(listener, xdg_shell_v6_view, commit); - struct sway_view *view = &xdg_shell_v6_view->view; - struct wlr_xdg_surface_v6 *xdg_surface_v6 = view->wlr_xdg_surface_v6; - - if (view->container->node.instruction) { - wlr_xdg_surface_v6_get_geometry(xdg_surface_v6, &view->geometry); - transaction_notify_view_ready_by_serial(view, - xdg_surface_v6->configure_serial); - } else { - struct wlr_box new_geo; - wlr_xdg_surface_v6_get_geometry(xdg_surface_v6, &new_geo); - struct sway_container *con = view->container; - - if ((new_geo.width != con->surface_width || - new_geo.height != con->surface_height)) { - // The view has unexpectedly sent a new size - desktop_damage_view(view); - view_update_size(view, new_geo.width, new_geo.height); - memcpy(&view->geometry, &new_geo, sizeof(struct wlr_box)); - desktop_damage_view(view); - transaction_commit_dirty(); - } else { - memcpy(&view->geometry, &new_geo, sizeof(struct wlr_box)); - } - } - - view_damage_from(view); -} - -static void handle_set_title(struct wl_listener *listener, void *data) { - struct sway_xdg_shell_v6_view *xdg_shell_v6_view = - wl_container_of(listener, xdg_shell_v6_view, set_title); - struct sway_view *view = &xdg_shell_v6_view->view; - view_update_title(view, false); - view_execute_criteria(view); -} - -static void handle_set_app_id(struct wl_listener *listener, void *data) { - struct sway_xdg_shell_v6_view *xdg_shell_v6_view = - wl_container_of(listener, xdg_shell_v6_view, set_app_id); - struct sway_view *view = &xdg_shell_v6_view->view; - view_execute_criteria(view); -} - -static void handle_new_popup(struct wl_listener *listener, void *data) { - struct sway_xdg_shell_v6_view *xdg_shell_v6_view = - wl_container_of(listener, xdg_shell_v6_view, new_popup); - struct wlr_xdg_popup_v6 *wlr_popup = data; - popup_create(wlr_popup, &xdg_shell_v6_view->view); -} - -static void handle_request_fullscreen(struct wl_listener *listener, void *data) { - struct sway_xdg_shell_v6_view *xdg_shell_v6_view = - wl_container_of(listener, xdg_shell_v6_view, request_fullscreen); - struct wlr_xdg_toplevel_v6_set_fullscreen_event *e = data; - struct wlr_xdg_surface_v6 *xdg_surface = - xdg_shell_v6_view->view.wlr_xdg_surface_v6; - struct sway_view *view = &xdg_shell_v6_view->view; - - if (!sway_assert(xdg_surface->role == WLR_XDG_SURFACE_V6_ROLE_TOPLEVEL, - "xdg_shell_v6 requested fullscreen of surface with role %i", - xdg_surface->role)) { - return; - } - if (!xdg_surface->mapped) { - return; - } - - if (e->fullscreen && e->output && e->output->data) { - struct sway_output *output = e->output->data; - struct sway_workspace *ws = output_get_active_workspace(output); - if (ws && !container_is_scratchpad_hidden(view->container)) { - if (container_is_floating(view->container)) { - workspace_add_floating(ws, view->container); - } else { - workspace_add_tiling(ws, view->container); - } - } - } - - container_set_fullscreen(view->container, e->fullscreen); - - arrange_root(); - transaction_commit_dirty(); -} - -static void handle_request_move(struct wl_listener *listener, void *data) { - struct sway_xdg_shell_v6_view *xdg_shell_v6_view = - wl_container_of(listener, xdg_shell_v6_view, request_move); - struct sway_view *view = &xdg_shell_v6_view->view; - if (!container_is_floating(view->container)) { - return; - } - struct wlr_xdg_toplevel_v6_move_event *e = data; - struct sway_seat *seat = e->seat->seat->data; - if (e->serial == seat->last_button_serial) { - seatop_begin_move_floating(seat, view->container); - } -} - -static void handle_request_resize(struct wl_listener *listener, void *data) { - struct sway_xdg_shell_v6_view *xdg_shell_v6_view = - wl_container_of(listener, xdg_shell_v6_view, request_resize); - struct sway_view *view = &xdg_shell_v6_view->view; - if (!container_is_floating(view->container)) { - return; - } - struct wlr_xdg_toplevel_v6_resize_event *e = data; - struct sway_seat *seat = e->seat->seat->data; - if (e->serial == seat->last_button_serial) { - seatop_begin_resize_floating(seat, view->container, e->edges); - } -} - -static void handle_unmap(struct wl_listener *listener, void *data) { - struct sway_xdg_shell_v6_view *xdg_shell_v6_view = - wl_container_of(listener, xdg_shell_v6_view, unmap); - struct sway_view *view = &xdg_shell_v6_view->view; - - if (!sway_assert(view->surface, "Cannot unmap unmapped view")) { - return; - } - - view_unmap(view); - - wl_list_remove(&xdg_shell_v6_view->commit.link); - wl_list_remove(&xdg_shell_v6_view->new_popup.link); - wl_list_remove(&xdg_shell_v6_view->request_fullscreen.link); - wl_list_remove(&xdg_shell_v6_view->request_move.link); - wl_list_remove(&xdg_shell_v6_view->request_resize.link); - wl_list_remove(&xdg_shell_v6_view->set_title.link); - wl_list_remove(&xdg_shell_v6_view->set_app_id.link); -} - -static void handle_map(struct wl_listener *listener, void *data) { - struct sway_xdg_shell_v6_view *xdg_shell_v6_view = - wl_container_of(listener, xdg_shell_v6_view, map); - struct sway_view *view = &xdg_shell_v6_view->view; - struct wlr_xdg_surface_v6 *xdg_surface = view->wlr_xdg_surface_v6; - - view->natural_width = view->wlr_xdg_surface_v6->geometry.width; - view->natural_height = view->wlr_xdg_surface_v6->geometry.height; - if (!view->natural_width && !view->natural_height) { - view->natural_width = view->wlr_xdg_surface_v6->surface->current.width; - view->natural_height = view->wlr_xdg_surface_v6->surface->current.height; - } - struct sway_server_decoration *deco = - decoration_from_surface(xdg_surface->surface); - bool csd = !deco || deco->wlr_server_decoration->mode - == WLR_SERVER_DECORATION_MANAGER_MODE_CLIENT; - - view_map(view, view->wlr_xdg_surface_v6->surface, - xdg_surface->toplevel->client_pending.fullscreen, - xdg_surface->toplevel->client_pending.fullscreen_output, - csd); - - transaction_commit_dirty(); - - xdg_shell_v6_view->commit.notify = handle_commit; - wl_signal_add(&xdg_surface->surface->events.commit, - &xdg_shell_v6_view->commit); - - xdg_shell_v6_view->new_popup.notify = handle_new_popup; - wl_signal_add(&xdg_surface->events.new_popup, - &xdg_shell_v6_view->new_popup); - - xdg_shell_v6_view->request_fullscreen.notify = handle_request_fullscreen; - wl_signal_add(&xdg_surface->toplevel->events.request_fullscreen, - &xdg_shell_v6_view->request_fullscreen); - - xdg_shell_v6_view->request_move.notify = handle_request_move; - wl_signal_add(&xdg_surface->toplevel->events.request_move, - &xdg_shell_v6_view->request_move); - - xdg_shell_v6_view->request_resize.notify = handle_request_resize; - wl_signal_add(&xdg_surface->toplevel->events.request_resize, - &xdg_shell_v6_view->request_resize); - - xdg_shell_v6_view->set_title.notify = handle_set_title; - wl_signal_add(&xdg_surface->toplevel->events.set_title, - &xdg_shell_v6_view->set_title); - - xdg_shell_v6_view->set_app_id.notify = handle_set_app_id; - wl_signal_add(&xdg_surface->toplevel->events.set_app_id, - &xdg_shell_v6_view->set_app_id); -} - -static void handle_destroy(struct wl_listener *listener, void *data) { - struct sway_xdg_shell_v6_view *xdg_shell_v6_view = - wl_container_of(listener, xdg_shell_v6_view, destroy); - struct sway_view *view = &xdg_shell_v6_view->view; - wl_list_remove(&xdg_shell_v6_view->destroy.link); - wl_list_remove(&xdg_shell_v6_view->map.link); - wl_list_remove(&xdg_shell_v6_view->unmap.link); - view->wlr_xdg_surface_v6 = NULL; - view_begin_destroy(view); -} - -struct sway_view *view_from_wlr_xdg_surface_v6( - struct wlr_xdg_surface_v6 *xdg_surface_v6) { - return xdg_surface_v6->data; -} - -void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data) { - struct wlr_xdg_surface_v6 *xdg_surface = data; - - if (xdg_surface->role == WLR_XDG_SURFACE_V6_ROLE_POPUP) { - sway_log(SWAY_DEBUG, "New xdg_shell_v6 popup"); - return; - } - - sway_log(SWAY_DEBUG, "New xdg_shell_v6 toplevel title='%s' app_id='%s'", - xdg_surface->toplevel->title, xdg_surface->toplevel->app_id); - wlr_xdg_surface_v6_ping(xdg_surface); - - struct sway_xdg_shell_v6_view *xdg_shell_v6_view = - calloc(1, sizeof(struct sway_xdg_shell_v6_view)); - if (!sway_assert(xdg_shell_v6_view, "Failed to allocate view")) { - return; - } - - view_init(&xdg_shell_v6_view->view, SWAY_VIEW_XDG_SHELL_V6, &view_impl); - xdg_shell_v6_view->view.wlr_xdg_surface_v6 = xdg_surface; - - xdg_shell_v6_view->map.notify = handle_map; - wl_signal_add(&xdg_surface->events.map, &xdg_shell_v6_view->map); - - xdg_shell_v6_view->unmap.notify = handle_unmap; - wl_signal_add(&xdg_surface->events.unmap, &xdg_shell_v6_view->unmap); - - xdg_shell_v6_view->destroy.notify = handle_destroy; - wl_signal_add(&xdg_surface->events.destroy, &xdg_shell_v6_view->destroy); - - xdg_surface->data = xdg_shell_v6_view; -} diff --git a/sway/meson.build b/sway/meson.build index 157e3996..4783c58f 100644 --- a/sway/meson.build +++ b/sway/meson.build @@ -17,7 +17,6 @@ sway_sources = files( 'desktop/output.c', 'desktop/render.c', 'desktop/transaction.c', - 'desktop/xdg_shell_v6.c', 'desktop/xdg_shell.c', 'input/input-manager.c', diff --git a/sway/server.c b/sway/server.c index 784237d4..6fe2a919 100644 --- a/sway/server.c +++ b/sway/server.c @@ -81,11 +81,6 @@ bool server_init(struct sway_server *server) { &server->layer_shell_surface); server->layer_shell_surface.notify = handle_layer_shell_surface; - server->xdg_shell_v6 = wlr_xdg_shell_v6_create(server->wl_display); - wl_signal_add(&server->xdg_shell_v6->events.new_surface, - &server->xdg_shell_v6_surface); - server->xdg_shell_v6_surface.notify = handle_xdg_shell_v6_surface; - server->xdg_shell = wlr_xdg_shell_create(server->wl_display); wl_signal_add(&server->xdg_shell->events.new_surface, &server->xdg_shell_surface); diff --git a/sway/tree/container.c b/sway/tree/container.c index 7068e166..6620921f 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c @@ -6,8 +6,6 @@ #include #include #include -#include -#include #include "cairo.h" #include "pango.h" #include "sway/config.h" @@ -187,11 +185,6 @@ static struct sway_container *surface_at_view(struct sway_container *con, double view_sx, view_sy, &_sx, &_sy); break; #endif - case SWAY_VIEW_XDG_SHELL_V6: - _surface = wlr_xdg_surface_v6_surface_at( - view->wlr_xdg_surface_v6, - view_sx, view_sy, &_sx, &_sy); - break; case SWAY_VIEW_XDG_SHELL: _surface = wlr_xdg_surface_surface_at( view->wlr_xdg_surface, @@ -358,19 +351,6 @@ static bool surface_is_popup(struct wlr_surface *surface) { return false; } - if (wlr_surface_is_xdg_surface_v6(surface)) { - struct wlr_xdg_surface_v6 *xdg_surface_v6 = - wlr_xdg_surface_v6_from_wlr_surface(surface); - while (xdg_surface_v6 && - xdg_surface_v6->role != WLR_XDG_SURFACE_V6_ROLE_NONE) { - if (xdg_surface_v6->role == WLR_XDG_SURFACE_V6_ROLE_POPUP) { - return true; - } - xdg_surface_v6 = xdg_surface_v6->toplevel->parent; - } - return false; - } - return false; } diff --git a/sway/tree/view.c b/sway/tree/view.c index 0f35d970..1d9cbec7 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -132,8 +132,6 @@ uint32_t view_get_window_type(struct sway_view *view) { const char *view_get_shell(struct sway_view *view) { switch(view->type) { - case SWAY_VIEW_XDG_SHELL_V6: - return "xdg_shell_v6"; case SWAY_VIEW_XDG_SHELL: return "xdg_shell"; #if HAVE_XWAYLAND @@ -933,11 +931,6 @@ struct sway_view *view_from_wlr_surface(struct wlr_surface *wlr_surface) { wlr_xdg_surface_from_wlr_surface(wlr_surface); return view_from_wlr_xdg_surface(xdg_surface); } - if (wlr_surface_is_xdg_surface_v6(wlr_surface)) { - struct wlr_xdg_surface_v6 *xdg_surface_v6 = - wlr_xdg_surface_v6_from_wlr_surface(wlr_surface); - return view_from_wlr_xdg_surface_v6(xdg_surface_v6); - } #if HAVE_XWAYLAND if (wlr_surface_is_xwayland_surface(wlr_surface)) { struct wlr_xwayland_surface *xsurface =