From 19d32da74213b5f819c328e96291c708ad4ba3ca Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Tue, 22 Nov 2022 13:28:57 +0200 Subject: [PATCH] shell-utils: Integrate shell-utils into libweston These shell utils functions are potentially useful to other shells as well, so make them widely available. Renamed all functions to weston_shell_utils namespace. No functional change, copied ad litteram. Signed-off-by: Marius Vlad --- compositor/meson.build | 1 - compositor/screen-share.c | 6 +- desktop-shell/meson.build | 1 - desktop-shell/shell.c | 55 ++++++++++--------- fullscreen-shell/fullscreen-shell.c | 24 ++++---- fullscreen-shell/meson.build | 1 - .../libweston}/shell-utils.h | 21 ++++--- kiosk-shell/kiosk-shell.c | 19 ++++--- kiosk-shell/meson.build | 1 - libweston/meson.build | 1 + libweston/shell-utils/meson.build | 3 + .../shell-utils}/shell-utils.c | 42 +++++++------- meson.build | 1 - shell-utils/meson.build | 5 -- tests/meson.build | 4 +- tests/safe-signal-output-removal-test.c | 8 +-- tests/weston-test-desktop-shell.c | 8 +-- 17 files changed, 103 insertions(+), 98 deletions(-) rename {shell-utils => include/libweston}/shell-utils.h (74%) create mode 100644 libweston/shell-utils/meson.build rename {shell-utils => libweston/shell-utils}/shell-utils.c (86%) delete mode 100644 shell-utils/meson.build diff --git a/compositor/meson.build b/compositor/meson.build index 855de4ab2..8960cea51 100644 --- a/compositor/meson.build +++ b/compositor/meson.build @@ -76,7 +76,6 @@ if get_option('screenshare') deps_screenshare = [ dep_libexec_weston, dep_libshared, - dep_shell_utils, dep_libweston_public, dep_libweston_private_h, # XXX: https://gitlab.freedesktop.org/wayland/weston/issues/292 dep_wayland_client, diff --git a/compositor/screen-share.c b/compositor/screen-share.c index e512ba229..8e1cf1d83 100644 --- a/compositor/screen-share.c +++ b/compositor/screen-share.c @@ -48,7 +48,7 @@ #include "shared/helpers.h" #include "shared/os-compatibility.h" #include "shared/timespec-util.h" -#include "shell-utils/shell-utils.h" +#include #include "fullscreen-shell-unstable-v1-client-protocol.h" struct shared_output { @@ -1165,9 +1165,9 @@ share_output_binding(struct weston_keyboard *keyboard, wl_fixed_to_int(pointer->x), wl_fixed_to_int(pointer->y)); } else { - output = get_focused_output(keyboard->seat->compositor); + output = weston_shell_utils_get_focused_output(keyboard->seat->compositor); if (!output) - output = get_default_output(keyboard->seat->compositor); + output = weston_shell_utils_get_default_output(keyboard->seat->compositor); } if (!output) { diff --git a/desktop-shell/meson.build b/desktop-shell/meson.build index c00d4a8df..b0f1f9754 100644 --- a/desktop-shell/meson.build +++ b/desktop-shell/meson.build @@ -14,7 +14,6 @@ if get_option('shell-desktop') dep_libexec_weston, dep_libshared, dep_libweston_public, - dep_shell_utils, ] plugin_shell_desktop = shared_library( 'desktop-shell', diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index 65378ec3b..ab32f08b3 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -42,7 +42,7 @@ #include #include "shared/helpers.h" #include "shared/timespec-util.h" -#include "shell-utils.h" +#include #include #define DEFAULT_NUM_WORKSPACES 1 @@ -262,7 +262,7 @@ desktop_shell_destroy_surface(struct shell_surface *shsurf) struct shell_surface *shsurf_child, *tmp; if (shsurf->fullscreen.black_view) - weston_curtain_destroy(shsurf->fullscreen.black_view); + weston_shell_utils_curtain_destroy(shsurf->fullscreen.black_view); wl_list_for_each_safe(shsurf_child, tmp, &shsurf->children_list, children_link) { wl_list_remove(&shsurf_child->children_link); @@ -535,7 +535,7 @@ create_focus_surface(struct weston_compositor *ec, curtain_params.surface_private = fsurf; - fsurf->curtain = weston_curtain_create(ec, &curtain_params); + fsurf->curtain = weston_shell_utils_curtain_create(ec, &curtain_params); weston_view_set_output(fsurf->curtain->view, output); fsurf->curtain->view->is_mapped = true; @@ -545,7 +545,7 @@ create_focus_surface(struct weston_compositor *ec, static void focus_surface_destroy(struct focus_surface *fsurf) { - weston_curtain_destroy(fsurf->curtain); + weston_shell_utils_curtain_destroy(fsurf->curtain); free(fsurf); } @@ -753,7 +753,7 @@ animate_focus_change(struct desktop_shell *shell, struct workspace *ws, if (from == to || shell->focus_animation_type != ANIMATION_DIM_LAYER) return; - output = get_default_output(shell->compositor); + output = weston_shell_utils_get_default_output(shell->compositor); if (ws->fsurf_front == NULL && (from || to)) { ws->fsurf_front = create_focus_surface(shell->compositor, output); if (ws->fsurf_front == NULL) @@ -1468,7 +1468,7 @@ shell_surface_set_output(struct shell_surface *shsurf, else if (es->output) shsurf->output = es->output; else - shsurf->output = get_default_output(es->compositor); + shsurf->output = weston_shell_utils_get_default_output(es->compositor); if (shsurf->output_destroy_listener.notify) { wl_list_remove(&shsurf->output_destroy_listener.link); @@ -1495,7 +1495,7 @@ unset_fullscreen(struct shell_surface *shsurf) wl_list_init(&shsurf->fullscreen.transform.link); if (shsurf->fullscreen.black_view) - weston_curtain_destroy(shsurf->fullscreen.black_view); + weston_shell_utils_curtain_destroy(shsurf->fullscreen.black_view); shsurf->fullscreen.black_view = NULL; if (shsurf->saved_position_valid) @@ -1522,7 +1522,8 @@ unset_maximized(struct shell_surface *shsurf) weston_desktop_surface_get_surface(shsurf->desktop_surface); /* undo all maximized things here */ - shell_surface_set_output(shsurf, get_default_output(surface->compositor)); + shell_surface_set_output(shsurf, + weston_shell_utils_get_default_output(surface->compositor)); if (shsurf->saved_position_valid) weston_view_set_position(shsurf->view, @@ -1648,7 +1649,7 @@ shell_ensure_fullscreen_black_view(struct shell_surface *shsurf) if (!shsurf->fullscreen.black_view) { shsurf->fullscreen.black_view = - weston_curtain_create(ec, &curtain_params); + weston_shell_utils_curtain_create(ec, &curtain_params); } view = shsurf->fullscreen.black_view->view; @@ -1686,11 +1687,11 @@ shell_configure_fullscreen(struct shell_surface *shsurf) shell_ensure_fullscreen_black_view(shsurf); - surface_subsurfaces_boundingbox(surface, &surf_x, &surf_y, - &surf_width, &surf_height); + weston_shell_utils_subsurfaces_boundingbox(surface, &surf_x, &surf_y, + &surf_width, &surf_height); if (weston_surface_has_content(surface)) - center_on_output(shsurf->view, shsurf->fullscreen_output); + weston_shell_utils_center_on_output(shsurf->view, shsurf->fullscreen_output); } static void @@ -1851,7 +1852,7 @@ desktop_surface_added(struct weston_desktop_surface *desktop_surface, return; } - weston_surface_set_label_func(surface, surface_get_label); + weston_surface_set_label_func(surface, weston_shell_utils_surface_get_label); shsurf->shell = (struct desktop_shell *) shell; shsurf->unresponsive = 0; @@ -1863,7 +1864,7 @@ desktop_surface_added(struct weston_desktop_surface *desktop_surface, wl_list_init(&shsurf->fullscreen.transform.link); shell_surface_set_output( - shsurf, get_default_output(shsurf->shell->compositor)); + shsurf, weston_shell_utils_get_default_output(shsurf->shell->compositor)); wl_signal_init(&shsurf->destroy_signal); @@ -1907,7 +1908,7 @@ desktop_surface_removed(struct weston_desktop_surface *desktop_surface, } if (shsurf->fullscreen.black_view) { - weston_curtain_destroy(shsurf->fullscreen.black_view); + weston_shell_utils_curtain_destroy(shsurf->fullscreen.black_view); shsurf->fullscreen.black_view = NULL; } @@ -1996,7 +1997,8 @@ map(struct desktop_shell *shell, struct shell_surface *shsurf) /* initial positioning, see also configure() */ if (shsurf->state.fullscreen) { - center_on_output(shsurf->view, shsurf->fullscreen_output); + weston_shell_utils_center_on_output(shsurf->view, + shsurf->fullscreen_output); shell_map_fullscreen(shsurf); } else if (shsurf->state.maximized) { set_maximized_position(shell, shsurf); @@ -2169,7 +2171,7 @@ set_fullscreen(struct shell_surface *shsurf, bool fullscreen, /* handle clients launching in fullscreen */ if (output == NULL && !weston_surface_is_mapped(surface)) { /* Set the output to the one that has focus currently. */ - output = get_focused_output(surface->compositor); + output = weston_shell_utils_get_focused_output(surface->compositor); } shell_surface_set_output(shsurf, output); @@ -2294,7 +2296,7 @@ set_maximized(struct shell_surface *shsurf, bool maximized) struct weston_output *output; if (!weston_surface_is_mapped(surface)) - output = get_focused_output(surface->compositor); + output = weston_shell_utils_get_focused_output(surface->compositor); else output = surface->output; @@ -2719,7 +2721,8 @@ lock_surface_committed(struct weston_surface *surface, int32_t sx, int32_t sy) if (surface->width == 0) return; - center_on_output(view, get_default_output(shell->compositor)); + weston_shell_utils_center_on_output(view, + weston_shell_utils_get_default_output(shell->compositor)); if (!weston_surface_is_mapped(surface)) { weston_layer_entry_insert(&shell->lock_layer.view_list, @@ -3548,7 +3551,7 @@ shell_fade_done_for_output(struct weston_view_animation *animation, void *data) shell_output->fade.animation = NULL; switch (shell_output->fade.type) { case FADE_IN: - weston_curtain_destroy(shell_output->fade.curtain); + weston_shell_utils_curtain_destroy(shell_output->fade.curtain); shell_output->fade.curtain = NULL; break; case FADE_OUT: @@ -3586,7 +3589,7 @@ shell_fade_create_view_for_output(struct desktop_shell *shell, }; struct weston_curtain *curtain; - curtain = weston_curtain_create(compositor, &curtain_params); + curtain = weston_shell_utils_curtain_create(compositor, &curtain_params); assert(curtain); weston_view_set_output(curtain->view, output); @@ -3611,7 +3614,7 @@ shell_fade_create_fade_out_view(struct shell_surface *shsurf, if (!view) return NULL; - woutput = get_focused_output(surface->compositor); + woutput = weston_shell_utils_get_focused_output(surface->compositor); /* set the initial position and output just in case we happen to not * move it around and just destroy it */ weston_view_set_output(view, woutput); @@ -3661,7 +3664,7 @@ shell_fade(struct desktop_shell *shell, enum fade_type type) * happens when you close the last window under the * X11 or Wayland backends. */ shell->locked = false; - weston_curtain_destroy(shell_output->fade.curtain); + weston_shell_utils_curtain_destroy(shell_output->fade.curtain); shell_output->fade.curtain = NULL; } else if (shell_output->fade.animation) { weston_fade_update(shell_output->fade.animation, tint); @@ -3687,7 +3690,7 @@ do_shell_fade_startup(void *data) "unexpected fade-in animation type %d\n", shell->startup_animation_type); wl_list_for_each(shell_output, &shell->output_list, link) { - weston_curtain_destroy(shell_output->fade.curtain); + weston_shell_utils_curtain_destroy(shell_output->fade.curtain); shell_output->fade.curtain = NULL; } } @@ -4190,7 +4193,7 @@ backlight_binding(struct weston_keyboard *keyboard, const struct timespec *time, * control on the primary display. We'd have to extend later if we * ever get support for setting backlights on random desktop LCD * panels though */ - output = get_default_output(compositor); + output = weston_shell_utils_get_default_output(compositor); if (!output) return; @@ -4323,7 +4326,7 @@ shell_output_destroy(struct shell_output *shell_output) } if (shell_output->fade.curtain) - weston_curtain_destroy(shell_output->fade.curtain); + weston_shell_utils_curtain_destroy(shell_output->fade.curtain); if (shell_output->fade.startup_timer) wl_event_source_remove(shell_output->fade.startup_timer); diff --git a/fullscreen-shell/fullscreen-shell.c b/fullscreen-shell/fullscreen-shell.c index ea4ca794e..ab3acc152 100644 --- a/fullscreen-shell/fullscreen-shell.c +++ b/fullscreen-shell/fullscreen-shell.c @@ -37,7 +37,7 @@ #include "compositor/weston.h" #include "fullscreen-shell-unstable-v1-server-protocol.h" #include "shared/helpers.h" -#include "shell-utils.h" +#include struct fullscreen_shell { struct wl_client *client; @@ -241,7 +241,7 @@ create_curtain(struct weston_compositor *ec, struct fs_output *fsout, }; struct weston_curtain *curtain; - curtain = weston_curtain_create(ec, &curtain_params); + curtain = weston_shell_utils_curtain_create(ec, &curtain_params); if (!curtain) { weston_log("no memory\n"); return NULL; @@ -371,8 +371,8 @@ fs_output_scale_view(struct fs_output *fsout, float width, float height) struct weston_view *view = fsout->view; struct weston_output *output = fsout->output; - surface_subsurfaces_boundingbox(view->surface, &surf_x, &surf_y, - &surf_width, &surf_height); + weston_shell_utils_subsurfaces_boundingbox(view->surface, &surf_x, &surf_y, + &surf_width, &surf_height); if (output->width == surf_width && output->height == surf_height) { weston_view_set_position(view, @@ -416,9 +416,9 @@ fs_output_configure_simple(struct fs_output *fsout, wl_list_remove(&fsout->transform.link); wl_list_init(&fsout->transform.link); - surface_subsurfaces_boundingbox(fsout->view->surface, - &surf_x, &surf_y, - &surf_width, &surf_height); + weston_shell_utils_subsurfaces_boundingbox(fsout->view->surface, + &surf_x, &surf_y, + &surf_width, &surf_height); output_aspect = (float) output->width / (float) output->height; surface_aspect = (float) surf_width / (float) surf_height; @@ -426,7 +426,7 @@ fs_output_configure_simple(struct fs_output *fsout, switch (fsout->method) { case ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_DEFAULT: case ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_CENTER: - center_on_output(fsout->view, fsout->output); + weston_shell_utils_center_on_output(fsout->view, fsout->output); break; case ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_ZOOM: @@ -477,14 +477,14 @@ fs_output_configure_for_mode(struct fs_output *fsout, if (fsout->pending.surface != configured_surface) { /* Nothing to really reconfigure. We'll just recenter the * view in case they played with subsurfaces */ - center_on_output(fsout->view, fsout->output); + weston_shell_utils_center_on_output(fsout->view, fsout->output); return; } /* We have a pending surface */ - surface_subsurfaces_boundingbox(fsout->pending.surface, - &surf_x, &surf_y, - &surf_width, &surf_height); + weston_shell_utils_subsurfaces_boundingbox(fsout->pending.surface, + &surf_x, &surf_y, + &surf_width, &surf_height); /* The actual output mode is in physical units. We need to * transform the surface size to physical unit size by flipping and diff --git a/fullscreen-shell/meson.build b/fullscreen-shell/meson.build index 4ecac5bce..05ba485eb 100644 --- a/fullscreen-shell/meson.build +++ b/fullscreen-shell/meson.build @@ -7,7 +7,6 @@ if get_option('shell-fullscreen') deps_shell_fullscreen = [ dep_libweston_public, dep_libexec_weston, - dep_shell_utils, ] shared_library( 'fullscreen-shell', diff --git a/shell-utils/shell-utils.h b/include/libweston/shell-utils.h similarity index 74% rename from shell-utils/shell-utils.h rename to include/libweston/shell-utils.h index b7a1df9a0..3a1782f49 100644 --- a/shell-utils/shell-utils.h +++ b/include/libweston/shell-utils.h @@ -45,27 +45,30 @@ struct weston_curtain { }; struct weston_output * -get_default_output(struct weston_compositor *compositor); +weston_shell_utils_get_default_output(struct weston_compositor *compositor); struct weston_output * -get_focused_output(struct weston_compositor *compositor); +weston_shell_utils_get_focused_output(struct weston_compositor *compositor); void -center_on_output(struct weston_view *view, struct weston_output *output); +weston_shell_utils_center_on_output(struct weston_view *view, + struct weston_output *output); void -surface_subsurfaces_boundingbox(struct weston_surface *surface, int32_t *x, - int32_t *y, int32_t *w, int32_t *h); +weston_shell_utils_subsurfaces_boundingbox(struct weston_surface *surface, + int32_t *x, int32_t *y, + int32_t *w, int32_t *h); int -surface_get_label(struct weston_surface *surface, char *buf, size_t len); +weston_shell_utils_surface_get_label(struct weston_surface *surface, + char *buf, size_t len); /* helper to create a view w/ a color */ struct weston_curtain * -weston_curtain_create(struct weston_compositor *compositor, - struct weston_curtain_params *params); +weston_shell_utils_curtain_create(struct weston_compositor *compositor, + struct weston_curtain_params *params); void -weston_curtain_destroy(struct weston_curtain *curtain); +weston_shell_utils_curtain_destroy(struct weston_curtain *curtain); uint32_t weston_shell_get_binding_modifier(struct weston_config *config, uint32_t default_mod); diff --git a/kiosk-shell/kiosk-shell.c b/kiosk-shell/kiosk-shell.c index ceff193e7..c1ab171f3 100644 --- a/kiosk-shell/kiosk-shell.c +++ b/kiosk-shell/kiosk-shell.c @@ -33,7 +33,7 @@ #include "kiosk-shell-grab.h" #include "compositor/weston.h" #include "shared/helpers.h" -#include "shell-utils.h" +#include #include @@ -185,11 +185,11 @@ kiosk_shell_surface_find_best_output(struct kiosk_shell_surface *shsurf) if (root->output) return root->output; - output = get_focused_output(shsurf->shell->compositor); + output = weston_shell_utils_get_focused_output(shsurf->shell->compositor); if (output) return output; - output = get_default_output(shsurf->shell->compositor); + output = weston_shell_utils_get_default_output(shsurf->shell->compositor); if (output) return output; @@ -299,7 +299,7 @@ kiosk_shell_surface_reconfigure_for_output(struct kiosk_shell_surface *shsurf) shsurf->output->height); } - center_on_output(shsurf->view, shsurf->output); + weston_shell_utils_center_on_output(shsurf->view, shsurf->output); weston_view_update_transform(shsurf->view); } @@ -488,7 +488,7 @@ kiosk_shell_output_recreate_background(struct kiosk_shell_output *shoutput) struct weston_curtain_params curtain_params = {}; if (shoutput->curtain) - weston_curtain_destroy(shoutput->curtain); + weston_shell_utils_curtain_destroy(shoutput->curtain); if (!output) return; @@ -515,7 +515,7 @@ kiosk_shell_output_recreate_background(struct kiosk_shell_output *shoutput) curtain_params.surface_committed = NULL; curtain_params.surface_private = NULL; - shoutput->curtain = weston_curtain_create(ec, &curtain_params); + shoutput->curtain = weston_shell_utils_curtain_create(ec, &curtain_params); weston_surface_set_role(shoutput->curtain->view->surface, "kiosk-shell-background", NULL, 0); @@ -535,7 +535,7 @@ kiosk_shell_output_destroy(struct kiosk_shell_output *shoutput) shoutput->output_destroy_listener.notify = NULL; if (shoutput->curtain) - weston_curtain_destroy(shoutput->curtain); + weston_shell_utils_curtain_destroy(shoutput->curtain); wl_list_remove(&shoutput->output_destroy_listener.link); wl_list_remove(&shoutput->link); @@ -636,7 +636,7 @@ desktop_surface_added(struct weston_desktop_surface *desktop_surface, if (!shsurf) return; - weston_surface_set_label_func(surface, surface_get_label); + weston_surface_set_label_func(surface, weston_shell_utils_surface_get_label); kiosk_shell_surface_set_fullscreen(shsurf, NULL); } @@ -780,7 +780,8 @@ desktop_surface_committed(struct weston_desktop_surface *desktop_surface, if (!weston_surface_is_mapped(surface) || (is_resized && is_fullscreen)) { if (is_fullscreen || !shsurf->xwayland.is_set) { - center_on_output(shsurf->view, shsurf->output); + weston_shell_utils_center_on_output(shsurf->view, + shsurf->output); } else { struct weston_geometry geometry = weston_desktop_surface_get_geometry(desktop_surface); diff --git a/kiosk-shell/meson.build b/kiosk-shell/meson.build index 0ebea6213..2baaa4e5a 100644 --- a/kiosk-shell/meson.build +++ b/kiosk-shell/meson.build @@ -10,7 +10,6 @@ if get_option('shell-kiosk') dep_libexec_weston, dep_libshared, dep_libweston_public, - dep_shell_utils, ] plugin_shell_kiosk = shared_library( 'kiosk-shell', diff --git a/libweston/meson.build b/libweston/meson.build index 244eff420..ad7d6d1d2 100644 --- a/libweston/meson.build +++ b/libweston/meson.build @@ -74,6 +74,7 @@ srcs_libweston = [ ] subdir('desktop') +subdir('shell-utils') if get_option('renderer-gl') dep_egl = dependency('egl', required: false) diff --git a/libweston/shell-utils/meson.build b/libweston/shell-utils/meson.build new file mode 100644 index 000000000..36dae2bae --- /dev/null +++ b/libweston/shell-utils/meson.build @@ -0,0 +1,3 @@ +srcs_libweston += files([ + 'shell-utils.c', +]) diff --git a/shell-utils/shell-utils.c b/libweston/shell-utils/shell-utils.c similarity index 86% rename from shell-utils/shell-utils.c rename to libweston/shell-utils/shell-utils.c index 99a566263..a81897dfb 100644 --- a/shell-utils/shell-utils.c +++ b/libweston/shell-utils/shell-utils.c @@ -25,11 +25,11 @@ */ #include "config.h" -#include "shell-utils.h" +#include #include -struct weston_output * -get_default_output(struct weston_compositor *compositor) +WL_EXPORT struct weston_output * +weston_shell_utils_get_default_output(struct weston_compositor *compositor) { if (wl_list_empty(&compositor->output_list)) return NULL; @@ -38,8 +38,8 @@ get_default_output(struct weston_compositor *compositor) struct weston_output, link); } -struct weston_output * -get_focused_output(struct weston_compositor *compositor) +WL_EXPORT struct weston_output * +weston_shell_utils_get_focused_output(struct weston_compositor *compositor) { struct weston_seat *seat; struct weston_output *output = NULL; @@ -70,9 +70,10 @@ get_focused_output(struct weston_compositor *compositor) } /* TODO: Fix this function to take into account nested subsurfaces. */ -void -surface_subsurfaces_boundingbox(struct weston_surface *surface, int32_t *x, - int32_t *y, int32_t *w, int32_t *h) +WL_EXPORT void +weston_shell_utils_subsurfaces_boundingbox(struct weston_surface *surface, + int32_t *x, int32_t *y, + int32_t *w, int32_t *h) { pixman_region32_t region; pixman_box32_t *box; @@ -103,8 +104,9 @@ surface_subsurfaces_boundingbox(struct weston_surface *surface, int32_t *x, pixman_region32_fini(®ion); } -void -center_on_output(struct weston_view *view, struct weston_output *output) +WL_EXPORT void +weston_shell_utils_center_on_output(struct weston_view *view, + struct weston_output *output) { int32_t surf_x, surf_y, width, height; float x, y; @@ -114,7 +116,8 @@ center_on_output(struct weston_view *view, struct weston_output *output) return; } - surface_subsurfaces_boundingbox(view->surface, &surf_x, &surf_y, &width, &height); + weston_shell_utils_subsurfaces_boundingbox(view->surface, &surf_x, + &surf_y, &width, &height); x = output->x + (output->width - width) / 2 - surf_x / 2; y = output->y + (output->height - height) / 2 - surf_y / 2; @@ -122,8 +125,9 @@ center_on_output(struct weston_view *view, struct weston_output *output) weston_view_set_position(view, x, y); } -int -surface_get_label(struct weston_surface *surface, char *buf, size_t len) +WL_EXPORT int +weston_shell_utils_surface_get_label(struct weston_surface *surface, + char *buf, size_t len) { const char *t, *c; struct weston_desktop_surface *desktop_surface = @@ -138,9 +142,9 @@ surface_get_label(struct weston_surface *surface, char *buf, size_t len) c ? " of " : "", c ?: ""); } -struct weston_curtain * -weston_curtain_create(struct weston_compositor *compositor, - struct weston_curtain_params *params) +WL_EXPORT struct weston_curtain * +weston_shell_utils_curtain_create(struct weston_compositor *compositor, + struct weston_curtain_params *params) { struct weston_curtain *curtain; struct weston_surface *surface = NULL; @@ -202,8 +206,8 @@ err: return NULL; } -void -weston_curtain_destroy(struct weston_curtain *curtain) +WL_EXPORT void +weston_shell_utils_curtain_destroy(struct weston_curtain *curtain) { struct weston_surface *surface = curtain->view->surface; @@ -213,7 +217,7 @@ weston_curtain_destroy(struct weston_curtain *curtain) free(curtain); } -uint32_t +WL_EXPORT uint32_t weston_shell_get_binding_modifier(struct weston_config *config, uint32_t default_mod) { diff --git a/meson.build b/meson.build index bf769cf45..2d9da4545 100644 --- a/meson.build +++ b/meson.build @@ -157,7 +157,6 @@ subdir('protocol') subdir('shared') subdir('libweston') subdir('xwayland') -subdir('shell-utils') subdir('compositor') subdir('desktop-shell') subdir('fullscreen-shell') diff --git a/shell-utils/meson.build b/shell-utils/meson.build deleted file mode 100644 index 88aaca8c9..000000000 --- a/shell-utils/meson.build +++ /dev/null @@ -1,5 +0,0 @@ -dep_shell_utils = declare_dependency( - sources: 'shell-utils.c', - include_directories: include_directories('.'), - dependencies: dep_libweston_public, -) diff --git a/tests/meson.build b/tests/meson.build index 85b6cf256..331afda30 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -2,7 +2,7 @@ plugin_test_shell_desktop = shared_library( 'weston-test-desktop-shell', 'weston-test-desktop-shell.c', include_directories: common_inc, - dependencies: [ dep_libweston_public, dep_libexec_weston, dep_shell_utils ], + dependencies: [ dep_libweston_public, dep_libexec_weston ], name_prefix: '', install: false ) @@ -266,7 +266,7 @@ tests = [ 'sources': [ 'safe-signal-output-removal-test.c', ], - 'dep_objs': [ dep_shell_utils ] + 'dep_objs': [ dep_libweston_public ] }, ] diff --git a/tests/safe-signal-output-removal-test.c b/tests/safe-signal-output-removal-test.c index 596ca498e..3ff225992 100644 --- a/tests/safe-signal-output-removal-test.c +++ b/tests/safe-signal-output-removal-test.c @@ -30,7 +30,7 @@ #include #include "../shared/signal.h" -#include "shell-utils.h" +#include #include "weston-test-client-helper.h" #include "weston-test-fixture-compositor.h" @@ -61,7 +61,7 @@ output_destroy(struct test_output *t_output) t_output->output_destroy_listener.notify = NULL; if (t_output->curtain) - weston_curtain_destroy(t_output->curtain); + weston_shell_utils_curtain_destroy(t_output->curtain); wl_list_remove(&t_output->output_destroy_listener.link); free(t_output); @@ -88,8 +88,8 @@ output_create_view(struct test_output *t_output) .surface_private = NULL, }; - t_output->curtain = weston_curtain_create(t_output->compositor, - &curtain_params); + t_output->curtain = weston_shell_utils_curtain_create(t_output->compositor, + &curtain_params); weston_view_set_output(t_output->curtain->view, t_output->output); /* weston_compositor_remove_output() has to be patched with diff --git a/tests/weston-test-desktop-shell.c b/tests/weston-test-desktop-shell.c index eaa0ad262..84855c9ea 100644 --- a/tests/weston-test-desktop-shell.c +++ b/tests/weston-test-desktop-shell.c @@ -39,7 +39,7 @@ #include "compositor/weston.h" #include #include "shared/helpers.h" -#include "shell-utils.h" +#include #include struct desktest_shell { @@ -174,7 +174,7 @@ shell_destroy(struct wl_listener *listener, void *data) wl_list_remove(&dts->compositor_destroy_listener.link); weston_desktop_destroy(dts->desktop); - weston_curtain_destroy(dts->background); + weston_shell_utils_curtain_destroy(dts->background); weston_layer_fini(&dts->layer); weston_layer_fini(&dts->background_layer); @@ -215,7 +215,7 @@ wet_shell_init(struct weston_compositor *ec, weston_layer_set_position(&dts->background_layer, WESTON_LAYER_POSITION_BACKGROUND); - dts->background = weston_curtain_create(ec, &background_params); + dts->background = weston_shell_utils_curtain_create(ec, &background_params); if (dts->background == NULL) goto out_free; weston_surface_set_role(dts->background->view->surface, @@ -236,7 +236,7 @@ wet_shell_init(struct weston_compositor *ec, return 0; out_view: - weston_curtain_destroy(dts->background); + weston_shell_utils_curtain_destroy(dts->background); out_free: wl_list_remove(&dts->compositor_destroy_listener.link);