From 90c90b205f000300a2aa2c4d5556fc4c84b70827 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jonas=20=C3=85dahl?= Date: Sat, 18 Oct 2014 13:09:56 +0200 Subject: [PATCH] desktop-shell: Change switcher to track views MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Preparation for future refactorings. Signed-off-by: Jonas Ådahl Acked-by: Peter Hutterer --- desktop-shell/shell.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index 67c4965..1b3247a 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -6040,7 +6040,7 @@ bind_desktop_shell(struct wl_client *client, struct switcher { struct desktop_shell *shell; - struct weston_surface *current; + struct weston_view *current; struct wl_listener listener; struct weston_keyboard_grab grab; struct wl_array minimized_array; @@ -6050,7 +6050,7 @@ static void switcher_next(struct switcher *switcher) { struct weston_view *view; - struct weston_surface *first = NULL, *prev = NULL, *next = NULL; + struct weston_view *first = NULL, *prev = NULL, *next = NULL; struct shell_surface *shsurf; struct workspace *ws = get_current_workspace(switcher->shell); @@ -6070,10 +6070,10 @@ switcher_next(struct switcher *switcher) shsurf->type == SHELL_SURFACE_TOPLEVEL && shsurf->parent == NULL) { if (first == NULL) - first = view->surface; + first = view; if (prev == switcher->current) - next = view->surface; - prev = view->surface; + next = view; + prev = view; view->alpha = 0.25; weston_view_geometry_dirty(view); weston_surface_damage(view->surface); @@ -6096,16 +6096,16 @@ switcher_next(struct switcher *switcher) wl_signal_add(&next->destroy_signal, &switcher->listener); switcher->current = next; - wl_list_for_each(view, &next->views, surface_link) + wl_list_for_each(view, &next->surface->views, surface_link) view->alpha = 1.0; - shsurf = get_shell_surface(switcher->current); + shsurf = get_shell_surface(switcher->current->surface); if (shsurf && shsurf->state.fullscreen) shsurf->fullscreen.black_view->alpha = 1.0; } static void -switcher_handle_surface_destroy(struct wl_listener *listener, void *data) +switcher_handle_view_destroy(struct wl_listener *listener, void *data) { struct switcher *switcher = container_of(listener, struct switcher, listener); @@ -6129,7 +6129,7 @@ switcher_destroy(struct switcher *switcher) } if (switcher->current) - activate(switcher->shell, switcher->current, + activate(switcher->shell, switcher->current->surface, keyboard->seat, true); wl_list_remove(&switcher->listener.link); weston_keyboard_end_grab(keyboard); @@ -6140,7 +6140,7 @@ switcher_destroy(struct switcher *switcher) struct weston_view **minimized; wl_array_for_each(minimized, &switcher->minimized_array) { /* with the exception of the current selected */ - if ((*minimized)->surface != switcher->current) { + if ((*minimized)->surface != switcher->current->surface) { weston_layer_entry_remove(&(*minimized)->layer_link); weston_layer_entry_insert(&switcher->shell->minimized_layer.view_list, &(*minimized)->layer_link); weston_view_damage_below(*minimized); @@ -6198,7 +6198,7 @@ switcher_binding(struct weston_keyboard *keyboard, uint32_t time, switcher = malloc(sizeof *switcher); switcher->shell = shell; switcher->current = NULL; - switcher->listener.notify = switcher_handle_surface_destroy; + switcher->listener.notify = switcher_handle_view_destroy; wl_list_init(&switcher->listener.link); wl_array_init(&switcher->minimized_array); -- 2.7.4