[PATCH weston v2 07/21] desktop-shell: Make activate() take a view instead of surface
Jonas Ådahl
jadahl at gmail.com
Wed May 13 03:26:28 PDT 2015
In preparation for further refactorings.
Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
---
desktop-shell/exposay.c | 6 +++---
desktop-shell/shell.c | 20 +++++++++++---------
desktop-shell/shell.h | 2 +-
3 files changed, 15 insertions(+), 13 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 8635d8f..cb74347 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -784,7 +784,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);
@@ -797,13 +798,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) {
@@ -2051,10 +2052,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);
}
}
@@ -5093,9 +5094,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;
@@ -5170,7 +5172,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
@@ -5608,7 +5610,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:
@@ -6105,7 +6107,7 @@ switcher_destroy(struct switcher *switcher)
}
if (switcher->current)
- activate(switcher->shell, switcher->current->surface,
+ activate(switcher->shell, switcher->current,
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
--
2.1.4
More information about the wayland-devel
mailing list