[PATCH weston v4 03/20] desktop-shell: Change switcher to track views
Peter Hutterer
peter.hutterer at who-t.net
Thu Nov 19 20:47:31 PST 2015
On Tue, Nov 17, 2015 at 06:10:49PM +0800, Jonas Ådahl wrote:
> Preparation for future refactorings.
>
> Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
Acked-by: Peter Hutterer <peter.hutterer at who-t.net>
Cheers,
Peter
> ---
> 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 bdabcbf..0f473f8 100644
> --- a/desktop-shell/shell.c
> +++ b/desktop-shell/shell.c
> @@ -5881,7 +5881,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;
> @@ -5891,7 +5891,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);
>
> @@ -5911,10 +5911,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);
> @@ -5937,16 +5937,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);
> @@ -5970,7 +5970,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);
> @@ -5981,7 +5981,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);
> @@ -6039,7 +6039,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.4.3
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
More information about the wayland-devel
mailing list