On Wed, Apr 09, 2014 at 04:33:32PM +0100, Neil Roberts wrote: > Before commit 2f5faff7f9142 when the compositor is locked it would > reset the keyboard focus on all of the seats as part of pushing the > focus_state. This was removed because it now always keeps track of the > focus_state in the workspace instead of waiting until the state is > pushed. However this had the side effect that the active surface would > retain focus when the compositor is locked. This patch just makes it > explicitly set the keyboard focus to NULL on all of the seats when > locking. This will be restored based on the workspace's state when > unlocking.
Right, nice and simple. Patch applied, thanks. Kristian > https://bugs.freedesktop.org/show_bug.cgi?id=73905 > --- > desktop-shell/shell.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c > index fa081f3..b19965f 100644 > --- a/desktop-shell/shell.c > +++ b/desktop-shell/shell.c > @@ -4498,6 +4498,19 @@ touch_to_activate_binding(struct weston_seat *seat, > uint32_t time, void *data) > } > > static void > +unfocus_all_seats(struct desktop_shell *shell) > +{ > + struct weston_seat *seat, *next; > + > + wl_list_for_each_safe(seat, next, &shell->compositor->seat_list, link) { > + if (seat->keyboard == NULL) > + continue; > + > + weston_keyboard_set_focus(seat->keyboard, NULL); > + } > +} > + > +static void > lock(struct desktop_shell *shell) > { > struct workspace *ws = get_current_workspace(shell); > @@ -4523,6 +4536,11 @@ lock(struct desktop_shell *shell) > > launch_screensaver(shell); > > + /* Remove the keyboard focus on all seats. This will be > + * restored to the workspace's saved state via > + * restore_focus_state when the compositor is unlocked */ > + unfocus_all_seats(shell); > + > /* TODO: disable bindings that should not work while locked. */ > > /* All this must be undone in resume_desktop(). */ > -- > 1.8.5.3 > > _______________________________________________ > wayland-devel mailing list > wayland-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/wayland-devel _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel