Change the parameters of set_maximized from wl_resource and wl_client to shell_surface and weston_output. This will allow it to be used with xdg-shell too. --- src/shell.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/src/shell.c b/src/shell.c index cf89a84..507d46f 100644 --- a/src/shell.c +++ b/src/shell.c @@ -2204,19 +2204,17 @@ get_output_panel_height(struct desktop_shell *shell, } static void -set_maximized(struct wl_client *client, - struct wl_resource *resource, - struct wl_resource *output_resource) +set_maximized(struct shell_surface *shsurf, + struct weston_output *output) { - struct shell_surface *shsurf = wl_resource_get_user_data(resource); struct weston_surface *es = shsurf->surface; struct desktop_shell *shell = NULL; uint32_t edges = 0, panel_height = 0; /* get the default output, if the client set it as NULL check whether the ouput is available */ - if (output_resource) - shsurf->output = wl_resource_get_user_data(output_resource); + if (output) + shsurf->output = output; else if (es->output) shsurf->output = es->output; else @@ -2239,10 +2237,17 @@ shell_surface_set_maximized(struct wl_client *client, struct wl_resource *output_resource) { struct shell_surface *shsurf = wl_resource_get_user_data(resource); + struct weston_output *output; + surface_clear_next_states(shsurf); - set_maximized(client, resource, output_resource); shsurf->next.maximized = true; shsurf->state_changed = true; + + if (output_resource) + output = wl_resource_get_user_data(output_resource); + else + output = NULL; + set_maximized(shsurf, output); } static void -- 1.8.3.1 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel