osd: prevent handling cursor actions in preview mode

Fixes: #1640

Co-Authored-By: tokyo4j <hrak1529@gmail.com>
This commit is contained in:
Consolatis 2024-03-29 02:53:53 +01:00 committed by Johan Malm
parent c4d12bf5d9
commit abd8e971c6
4 changed files with 26 additions and 1 deletions

View file

@ -521,7 +521,8 @@ process_cursor_motion(struct server *server, uint32_t time)
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);
}
@ -798,6 +799,10 @@ static bool
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;
@ -884,6 +889,10 @@ static bool
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;