[PATCH weston v4 04/20] desktop-shell: Make activate() take a view instead of surface

Peter Hutterer peter.hutterer at who-t.net
Thu Nov 19 20:48:01 PST 2015


On Tue, Nov 17, 2015 at 06:10:50PM +0800, Jonas Ådahl wrote:
> In preparation for further refactorings.
> 
> Signed-off-by: Jonas Ådahl <jadahl at gmail.com>

Acked-by: Peter Hutterer <peter.hutterer at who-t.net>

Cheers,
   Peter

> ---
>  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 8bd55fb..1e43240 100644
> --- a/desktop-shell/exposay.c
> +++ b/desktop-shell/exposay.c
> @@ -162,7 +162,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;
>  }
>  
> @@ -558,10 +558,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 0f473f8..1c84a88 100644
> --- a/desktop-shell/shell.c
> +++ b/desktop-shell/shell.c
> @@ -807,7 +807,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);
> @@ -820,13 +821,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) {
> @@ -1988,10 +1989,10 @@ busy_cursor_grab_button(struct weston_pointer_grab *base,
>  	struct weston_seat *seat = 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, pointer, false);
>  	} else if (shsurf && button == BTN_RIGHT && state) {
> -		activate(shsurf->shell, shsurf->surface, seat, true);
> +		activate(shsurf->shell, shsurf->view, seat, true);
>  		surface_rotate(shsurf, pointer);
>  	}
>  }
> @@ -5033,9 +5034,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;
> @@ -5111,7 +5113,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
> @@ -5561,7 +5563,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:
> @@ -5970,7 +5972,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 2ef23f4..153ede5 100644
> --- a/desktop-shell/shell.h
> +++ b/desktop-shell/shell.h
> @@ -226,7 +226,7 @@ lower_fullscreen_layer(struct desktop_shell *shell,
>  		       struct weston_output *lowering_output);
>  
>  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.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