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

Reply via email to