shell: Make create_shell_surface() just return the shsurf
This commit is contained in:
parent
e829a87a88
commit
45ba869ff3
|
@ -58,9 +58,9 @@ struct weston_mode {
|
|||
struct weston_shell_interface {
|
||||
void *shell; /* either desktop or tablet */
|
||||
|
||||
void (*create_shell_surface)(void *shell,
|
||||
struct weston_surface *surface,
|
||||
struct shell_surface **ret);
|
||||
struct shell_surface *(*create_shell_surface)(void *shell,
|
||||
struct weston_surface *surface);
|
||||
|
||||
void (*set_toplevel)(struct shell_surface *shsurf);
|
||||
|
||||
void (*set_transient)(struct shell_surface *shsurf,
|
||||
|
|
13
src/shell.c
13
src/shell.c
|
@ -1246,21 +1246,20 @@ get_shell_surface(struct weston_surface *surface)
|
|||
static void
|
||||
shell_surface_configure(struct weston_surface *, int32_t, int32_t);
|
||||
|
||||
static void
|
||||
create_shell_surface(void *shell, struct weston_surface *surface,
|
||||
struct shell_surface **ret)
|
||||
static struct shell_surface *
|
||||
create_shell_surface(void *shell, struct weston_surface *surface)
|
||||
{
|
||||
struct shell_surface *shsurf;
|
||||
|
||||
if (surface->configure) {
|
||||
fprintf(stderr, "surface->configure already set\n");
|
||||
return;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
shsurf = calloc(1, sizeof *shsurf);
|
||||
if (!shsurf) {
|
||||
fprintf(stderr, "no memory to allocate shell surface\n");
|
||||
return;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
surface->configure = shell_surface_configure;
|
||||
|
@ -1295,7 +1294,7 @@ create_shell_surface(void *shell, struct weston_surface *surface,
|
|||
shsurf->type = SHELL_SURFACE_NONE;
|
||||
shsurf->next_type = SHELL_SURFACE_NONE;
|
||||
|
||||
*ret = shsurf;
|
||||
return shsurf;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1315,7 +1314,7 @@ shell_get_shell_surface(struct wl_client *client,
|
|||
return;
|
||||
}
|
||||
|
||||
create_shell_surface(shell, surface, &shsurf);
|
||||
shsurf = create_shell_surface(shell, surface);
|
||||
if (!shsurf) {
|
||||
wl_resource_post_error(surface_resource,
|
||||
WL_DISPLAY_ERROR_INVALID_OBJECT,
|
||||
|
|
|
@ -1957,8 +1957,9 @@ xserver_map_shell_surface(struct weston_wm *wm,
|
|||
if (!shell_interface->create_shell_surface)
|
||||
return;
|
||||
|
||||
window->shsurf =
|
||||
shell_interface->create_shell_surface(shell_interface->shell,
|
||||
window->surface, &window->shsurf);
|
||||
window->surface);
|
||||
|
||||
if (!window->transient_for) {
|
||||
shell_interface->set_toplevel(window->shsurf);
|
||||
|
|
Loading…
Reference in New Issue