diff --git a/include/labwc.h b/include/labwc.h index 27185df2..80d5e73d 100644 --- a/include/labwc.h +++ b/include/labwc.h @@ -353,7 +353,6 @@ void foreign_toplevel_handle_create(struct view *view); * or pointer focus, in this compositor are they called together. */ -void desktop_set_focus_view_only(struct seat *seat, struct view *view); void desktop_raise_view(struct view *view); void desktop_focus_and_activate_view(struct seat *seat, struct view *view); diff --git a/src/cursor.c b/src/cursor.c index b5dba5c8..cea92cfd 100644 --- a/src/cursor.c +++ b/src/cursor.c @@ -181,11 +181,9 @@ process_cursor_motion(struct server *server, uint32_t time) if (view && rc.focus_follow_mouse) { + desktop_focus_and_activate_view(&server->seat, view); if (rc.raise_on_focus) { - desktop_focus_and_activate_view(&server->seat, view); desktop_raise_view(view); - } else { - desktop_set_focus_view_only(&server->seat, view); } } diff --git a/src/desktop.c b/src/desktop.c index 482949aa..b616acf5 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -51,49 +51,6 @@ move_xwayland_sub_views_to_front(struct view *parent) } #endif -/* Activate/deactivate toplevel surface */ -static void -set_activated(struct wlr_surface *surface, bool activated) -{ - if (!surface) { - return; - } - if (wlr_surface_is_xdg_surface(surface)) { - struct wlr_xdg_surface *s; - s = wlr_xdg_surface_from_wlr_surface(surface); - wlr_xdg_toplevel_set_activated(s, activated); -#if HAVE_XWAYLAND - } else if (wlr_surface_is_xwayland_surface(surface)) { - struct wlr_xwayland_surface *s; - s = wlr_xwayland_surface_from_wlr_surface(surface); - wlr_xwayland_surface_activate(s, activated); -#endif - } -} - -void -desktop_set_focus_view_only(struct seat *seat, struct view *view) -{ - if (!view || view->minimized || !view->mapped) { - return; - } - if (input_inhibit_blocks_surface(seat, view->surface->resource)) { - return; - } - - struct wlr_surface *prev_surface; - prev_surface = seat->seat->keyboard_state.focused_surface; - if (prev_surface == view->surface) { - /* Don't re-focus an already focused surface. */ - return; - } - if (prev_surface) { - set_activated(prev_surface, false); - } - set_activated(view->surface, true); - seat_focus_surface(seat, view->surface); -} - void desktop_raise_view(struct view *view) {