In preparation for further refactorings.

Signed-off-by: Jonas Ådahl <jad...@gmail.com>
---
 desktop-shell/exposay.c |  6 +++---
 desktop-shell/shell.c   | 22 ++++++++++++----------
 desktop-shell/shell.h   |  2 +-
 3 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/desktop-shell/exposay.c b/desktop-shell/exposay.c
index a44c1f7..5073a96 100644
--- a/desktop-shell/exposay.c
+++ b/desktop-shell/exposay.c
@@ -160,7 +160,7 @@ exposay_highlight_surface(struct desktop_shell *shell,
        shell->exposay.column_current = esurface->column;
        shell->exposay.cur_output = esurface->eoutput;
 
-       activate(shell, view->surface, shell->exposay.seat, false);
+       activate(shell, view, shell->exposay.seat, false);
        shell->exposay.focus_current = view;
 }
 
@@ -544,10 +544,10 @@ exposay_transition_inactive(struct desktop_shell *shell, 
int switch_focus)
         * animating back the old state and then immediately transitioning
         * to the new. */
        if (switch_focus && shell->exposay.focus_current)
-               activate(shell, shell->exposay.focus_current->surface,
+               activate(shell, shell->exposay.focus_current,
                         shell->exposay.seat, true);
        else if (shell->exposay.focus_prev)
-               activate(shell, shell->exposay.focus_prev->surface,
+               activate(shell, shell->exposay.focus_prev,
                         shell->exposay.seat, true);
 
        wl_list_for_each(esurface, &shell->exposay.surface_list, link)
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index aa9c333..f8c2185 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -747,7 +747,8 @@ focus_state_surface_destroy(struct wl_listener *listener, 
void *data)
                                                 struct focus_state,
                                                 surface_destroy_listener);
        struct desktop_shell *shell;
-       struct weston_surface *main_surface, *next;
+       struct weston_surface *main_surface;
+       struct weston_view *next;
        struct weston_view *view;
 
        main_surface = weston_surface_get_main_surface(state->keyboard_focus);
@@ -760,13 +761,13 @@ focus_state_surface_destroy(struct wl_listener *listener, 
void *data)
                if (is_focus_view(view))
                        continue;
 
-               next = view->surface;
+               next = view;
                break;
        }
 
        /* if the focus was a sub-surface, activate its main surface */
        if (main_surface != state->keyboard_focus)
-               next = main_surface;
+               next = get_default_view(main_surface);
 
        shell = state->seat->compositor->shell_interface.shell;
        if (next) {
@@ -2010,10 +2011,10 @@ busy_cursor_grab_button(struct weston_pointer_grab 
*base,
        struct weston_seat *seat = grab->grab.pointer->seat;
 
        if (shsurf && button == BTN_LEFT && state) {
-               activate(shsurf->shell, shsurf->surface, seat, true);
+               activate(shsurf->shell, shsurf->view, seat, true);
                surface_move(shsurf, seat, 0);
        } else if (shsurf && button == BTN_RIGHT && state) {
-               activate(shsurf->shell, shsurf->surface, seat, true);
+               activate(shsurf->shell, shsurf->view, seat, true);
                surface_rotate(shsurf, seat);
        }
 }
@@ -2645,7 +2646,7 @@ set_minimized(struct weston_surface *surface, bool 
minimized)
                wl_list_for_each(seat, &shell->compositor->seat_list, link) {
                        if (!seat->keyboard)
                                continue;
-                       activate(shsurf->shell, view->surface, seat, true);
+                       activate(shsurf->shell, view, seat, true);
                }
        }
 
@@ -4867,9 +4868,10 @@ lower_fullscreen_layer(struct desktop_shell *shell)
 }
 
 void
-activate(struct desktop_shell *shell, struct weston_surface *es,
+activate(struct desktop_shell *shell, struct weston_view *view,
         struct weston_seat *seat, bool configure)
 {
+       struct weston_surface *es = view->surface;
        struct weston_surface *main_surface;
        struct focus_state *state;
        struct workspace *ws;
@@ -4944,7 +4946,7 @@ activate_binding(struct weston_seat *seat,
        if (get_shell_surface_type(main_surface) == SHELL_SURFACE_NONE)
                return;
 
-       activate(shell, focus_view->surface, seat, true);
+       activate(shell, focus_view, seat, true);
 }
 
 static void
@@ -5376,7 +5378,7 @@ map(struct desktop_shell *shell, struct shell_surface 
*shsurf,
                if (shell->locked)
                        break;
                wl_list_for_each(seat, &compositor->seat_list, link)
-                       activate(shell, shsurf->surface, seat, true);
+                       activate(shell, shsurf->view, seat, true);
                break;
        case SHELL_SURFACE_POPUP:
        case SHELL_SURFACE_NONE:
@@ -5864,7 +5866,7 @@ switcher_destroy(struct switcher *switcher)
        }
 
        if (switcher->current)
-               activate(switcher->shell, switcher->current->surface,
+               activate(switcher->shell, switcher->current,
                         (struct weston_seat *) keyboard->seat, true);
        wl_list_remove(&switcher->listener.link);
        weston_keyboard_end_grab(keyboard);
diff --git a/desktop-shell/shell.h b/desktop-shell/shell.h
index 2cfd1d6..9409f8f 100644
--- a/desktop-shell/shell.h
+++ b/desktop-shell/shell.h
@@ -230,7 +230,7 @@ void
 lower_fullscreen_layer(struct desktop_shell *shell);
 
 void
-activate(struct desktop_shell *shell, struct weston_surface *es,
+activate(struct desktop_shell *shell, struct weston_view *view,
         struct weston_seat *seat, bool configure);
 
 void
-- 
1.8.5.1

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to