In preparation for further refactoring. Signed-off-by: Jonas Ådahl <jad...@gmail.com> Signed-off-by: Arnaud Vrac <av...@freebox.fr> --- desktop-shell/shell.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-)
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index d58a830..bdabcbf 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -2737,7 +2737,8 @@ shell_surface_get_shell(struct shell_surface *shsurf) static int black_surface_get_label(struct weston_surface *surface, char *buf, size_t len) { - struct weston_surface *fs_surface = surface->configure_private; + struct weston_view *fs_view = surface->configure_private; + struct weston_surface *fs_surface = fs_view->surface; int n; int rem; int ret; @@ -2766,7 +2767,7 @@ black_surface_configure(struct weston_surface *es, int32_t sx, int32_t sy); static struct weston_view * create_black_surface(struct weston_compositor *ec, - struct weston_surface *fs_surface, + struct weston_view *fs_view, float x, float y, int w, int h) { struct weston_surface *surface = NULL; @@ -2785,7 +2786,7 @@ create_black_surface(struct weston_compositor *ec, } surface->configure = black_surface_configure; - surface->configure_private = fs_surface; + surface->configure_private = fs_view; weston_surface_set_label_func(surface, black_surface_get_label); weston_surface_set_color(surface, 0.0, 0.0, 0.0, 1); pixman_region32_fini(&surface->opaque); @@ -2809,7 +2810,7 @@ shell_ensure_fullscreen_black_view(struct shell_surface *shsurf) if (!shsurf->fullscreen.black_view) shsurf->fullscreen.black_view = create_black_surface(shsurf->surface->compositor, - shsurf->surface, + shsurf->view, output->x, output->y, output->width, output->height); @@ -5080,11 +5081,13 @@ black_surface_configure(struct weston_surface *es, int32_t sx, int32_t sy) } static bool -is_black_surface (struct weston_surface *es, struct weston_surface **fs_surface) +is_black_surface_view(struct weston_view *view, struct weston_view **fs_view) { - if (es->configure == black_surface_configure) { - if (fs_surface) - *fs_surface = (struct weston_surface *)es->configure_private; + struct weston_surface *surface = view->surface; + + if (surface->configure == black_surface_configure) { + if (fs_view) + *fs_view = surface->configure_private; return true; } return false; @@ -5095,19 +5098,20 @@ activate_binding(struct weston_seat *seat, struct desktop_shell *shell, struct weston_view *focus_view) { - struct weston_surface *focus; + struct weston_view *main_view; struct weston_surface *main_surface; - focus = focus_view->surface; + if (!focus_view) + return; - if (is_black_surface(focus, &main_surface)) - focus = main_surface; + if (is_black_surface_view(focus_view, &main_view)) + focus_view = main_view; - main_surface = weston_surface_get_main_surface(focus); + main_surface = weston_surface_get_main_surface(focus_view->surface); if (get_shell_surface_type(main_surface) == SHELL_SURFACE_NONE) return; - activate(shell, focus, seat, true); + activate(shell, focus_view->surface, seat, true); } static void @@ -5916,7 +5920,7 @@ switcher_next(struct switcher *switcher) weston_surface_damage(view->surface); } - if (is_black_surface(view->surface, NULL)) { + if (is_black_surface_view(view, NULL)) { view->alpha = 0.25; weston_view_geometry_dirty(view); weston_surface_damage(view->surface); -- 2.4.3 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel