[PATCH weston v2 03/21] desktop-shell: Add surface_keyboard_focus_lost helper
Derek Foreman
derekf at osg.samsung.com
Thu Jun 4 13:31:19 PDT 2015
This seems like a simple refactor has merit independently, and could
probably land any time...
Reviewed-By: Derek Foreman <derekf at osg.samsung.com>
On 13/05/15 05:26 AM, Jonas Ådahl wrote:
> Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
> ---
> desktop-shell/shell.c | 37 ++++++++++++++++++-------------------
> 1 file changed, 18 insertions(+), 19 deletions(-)
>
> diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
> index c66a976..ff17b04 100644
> --- a/desktop-shell/shell.c
> +++ b/desktop-shell/shell.c
> @@ -1393,14 +1393,28 @@ workspace_has_only(struct workspace *ws, struct weston_surface *surface)
> }
>
> static void
> +surface_keyboard_focus_lost(struct weston_surface *surface)
> +{
> + struct weston_compositor *compositor = surface->compositor;
> + struct weston_seat *seat;
> + struct weston_surface *focus;
> +
> + wl_list_for_each(seat, &compositor->seat_list, link) {
> + if (!seat->keyboard)
> + continue;
> + focus = weston_surface_get_main_surface(seat->keyboard->focus);
> + if (focus == surface)
> + weston_keyboard_set_focus(seat->keyboard, NULL);
> + }
> +}
> +
> +static void
> move_surface_to_workspace(struct desktop_shell *shell,
> struct shell_surface *shsurf,
> uint32_t workspace)
> {
> struct workspace *from;
> struct workspace *to;
> - struct weston_seat *seat;
> - struct weston_surface *focus;
> struct weston_view *view;
>
> if (workspace == shell->workspaces.current)
> @@ -1424,14 +1438,7 @@ move_surface_to_workspace(struct desktop_shell *shell,
> shell_surface_update_child_surface_layers(shsurf);
>
> drop_focus_state(shell, from, view->surface);
> - wl_list_for_each(seat, &shell->compositor->seat_list, link) {
> - if (!seat->keyboard)
> - continue;
> -
> - focus = weston_surface_get_main_surface(seat->keyboard->focus);
> - if (focus == view->surface)
> - weston_keyboard_set_focus(seat->keyboard, NULL);
> - }
> + surface_keyboard_focus_lost(view->surface);
>
> weston_view_damage_below(view);
> }
> @@ -2665,8 +2672,6 @@ set_minimized(struct weston_surface *surface)
> {
> struct shell_surface *shsurf;
> struct workspace *current_ws;
> - struct weston_seat *seat;
> - struct weston_surface *focus;
> struct weston_view *view;
>
> view = get_default_view(surface);
> @@ -2682,13 +2687,7 @@ set_minimized(struct weston_surface *surface)
> weston_layer_entry_insert(&shsurf->shell->minimized_layer.view_list, &view->layer_link);
>
> drop_focus_state(shsurf->shell, current_ws, view->surface);
> - wl_list_for_each(seat, &shsurf->shell->compositor->seat_list, link) {
> - if (!seat->keyboard)
> - continue;
> - focus = weston_surface_get_main_surface(seat->keyboard->focus);
> - if (focus == view->surface)
> - weston_keyboard_set_focus(seat->keyboard, NULL);
> - }
> + surface_keyboard_focus_lost(surface);
>
> shell_surface_update_child_surface_layers(shsurf);
> weston_view_damage_below(view);
>
More information about the wayland-devel
mailing list