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 <marius.vlad@collabora.com>
This commit is contained in:
Marius Vlad 2022-11-22 13:28:57 +02:00 committed by Daniel Stone
parent 68cad4db42
commit 19d32da742
17 changed files with 103 additions and 98 deletions

View File

@ -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,

View File

@ -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 <libweston/shell-utils.h>
#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) {

View File

@ -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',

View File

@ -42,7 +42,7 @@
#include <libweston/config-parser.h>
#include "shared/helpers.h"
#include "shared/timespec-util.h"
#include "shell-utils.h"
#include <libweston/shell-utils.h>
#include <libweston/desktop.h>
#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);

View File

@ -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 <libweston/shell-utils.h>
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

View File

@ -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',

View File

@ -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);

View File

@ -33,7 +33,7 @@
#include "kiosk-shell-grab.h"
#include "compositor/weston.h"
#include "shared/helpers.h"
#include "shell-utils.h"
#include <libweston/shell-utils.h>
#include <libweston/xwayland-api.h>
@ -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);

View File

@ -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',

View File

@ -74,6 +74,7 @@ srcs_libweston = [
]
subdir('desktop')
subdir('shell-utils')
if get_option('renderer-gl')
dep_egl = dependency('egl', required: false)

View File

@ -0,0 +1,3 @@
srcs_libweston += files([
'shell-utils.c',
])

View File

@ -25,11 +25,11 @@
*/
#include "config.h"
#include "shell-utils.h"
#include <libweston/shell-utils.h>
#include <libweston/desktop.h>
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(&region);
}
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)
{

View File

@ -157,7 +157,6 @@ subdir('protocol')
subdir('shared')
subdir('libweston')
subdir('xwayland')
subdir('shell-utils')
subdir('compositor')
subdir('desktop-shell')
subdir('fullscreen-shell')

View File

@ -1,5 +0,0 @@
dep_shell_utils = declare_dependency(
sources: 'shell-utils.c',
include_directories: include_directories('.'),
dependencies: dep_libweston_public,
)

View File

@ -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 ]
},
]

View File

@ -30,7 +30,7 @@
#include <stdio.h>
#include "../shared/signal.h"
#include "shell-utils.h"
#include <libweston/shell-utils.h>
#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

View File

@ -39,7 +39,7 @@
#include "compositor/weston.h"
#include <libweston/config-parser.h>
#include "shared/helpers.h"
#include "shell-utils.h"
#include <libweston/shell-utils.h>
#include <libweston/desktop.h>
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);