osd: don't update cursor while window switching

cursor_update_focus() is no-op while server->input_mode is set. So we
should only call cursor_update_focus() at the beginning/end of window
switching.
This commit is contained in:
tokyo4j 2025-02-22 20:38:59 +09:00 committed by Johan Malm
parent 4eec0d2fc7
commit cf759ec183

View file

@ -173,6 +173,9 @@ osd_begin(struct server *server, enum lab_cycle_dir direction)
seat_focus_override_begin(&server->seat, seat_focus_override_begin(&server->seat,
LAB_INPUT_STATE_WINDOW_SWITCHER, LAB_CURSOR_DEFAULT); LAB_INPUT_STATE_WINDOW_SWITCHER, LAB_CURSOR_DEFAULT);
osd_update(server); osd_update(server);
/* Update cursor, in case it is within the area covered by OSD */
cursor_update_focus(server);
} }
void void
@ -425,9 +428,6 @@ display_osd(struct output *output, struct wl_array *views)
- h / 2 + output_box.y; - h / 2 + output_box.y;
wlr_scene_node_set_position(&scene_buffer->node, lx, ly); wlr_scene_node_set_position(&scene_buffer->node, lx, ly);
wlr_scene_node_set_enabled(&output->osd_tree->node, true); wlr_scene_node_set_enabled(&output->osd_tree->node, true);
/* Update cursor, in case it is within the area covered by OSD */
cursor_update_focus(server);
} }
void void