{
struct view *view = wl_container_of(listener, view, toplevel.activate);
// struct wlr_foreign_toplevel_handle_v1_activated_event *event = data;
+
+ if (view->server->osd_state.cycle_view) {
+ wlr_log(WLR_INFO, "Preventing focus request while in window switcher");
+ return;
+ }
+
/* In a multi-seat world we would select seat based on event->seat here. */
desktop_focus_view(view, /*raise*/ true);
}
dnd_icons_move(seat, seat->cursor->x, seat->cursor->y);
}
- if ((ctx.view || ctx.surface) && rc.focus_follow_mouse) {
+ if ((ctx.view || ctx.surface) && rc.focus_follow_mouse
+ && !server->osd_state.cycle_view) {
desktop_focus_view_or_surface(seat, ctx.view, ctx.surface,
rc.raise_on_focus);
}
handle_release_mousebinding(struct server *server,
struct cursor_context *ctx, uint32_t button)
{
+ if (server->osd_state.cycle_view) {
+ return false;
+ }
+
struct mousebind *mousebind;
bool consumed_by_frame_context = false;
handle_press_mousebinding(struct server *server, struct cursor_context *ctx,
uint32_t button, uint32_t resize_edges)
{
+ if (server->osd_state.cycle_view) {
+ return false;
+ }
+
struct mousebind *mousebind;
bool double_click = is_double_click(rc.doubleclick_time, button, ctx);
bool consumed_by_frame_context = false;
return;
}
+ if (view->server->osd_state.cycle_view) {
+ wlr_log(WLR_INFO, "Preventing focus request while in window switcher");
+ return;
+ }
+
wlr_log(WLR_DEBUG, "Activating surface");
desktop_focus_view(view, /*raise*/ true);
}
return;
}
+ if (view->server->osd_state.cycle_view) {
+ wlr_log(WLR_INFO, "Preventing focus request while in window switcher");
+ return;
+ }
+
desktop_focus_view(view, /*raise*/ true);
}