Add missing transaction commits to seatop_default

Every seat_set_focus* should be followed by a transaction_commit_dirty.
In cases where the focus change is followed by a seatop_begin* this is
not needed, as transaction_commit_dirty is then called by the
seatop_begin* function.

Fixes #6034
This commit is contained in:
David96 2021-02-16 14:22:57 +01:00 committed by Tudor Brindus
parent a3d45c3280
commit 28cadf5580

View file

@ -232,6 +232,7 @@ static void handle_tablet_tool_tip(struct sway_seat *seat,
wlr_layer_surface_v1_from_wlr_surface(surface); wlr_layer_surface_v1_from_wlr_surface(surface);
if (layer->current.keyboard_interactive) { if (layer->current.keyboard_interactive) {
seat_set_focus_layer(seat, layer); seat_set_focus_layer(seat, layer);
transaction_commit_dirty();
} }
} else if (cont) { } else if (cont) {
bool is_floating_or_child = container_is_floating_or_child(cont); bool is_floating_or_child = container_is_floating_or_child(cont);
@ -269,6 +270,7 @@ static void handle_tablet_tool_tip(struct sway_seat *seat,
struct wlr_xwayland *xwayland = server.xwayland.wlr_xwayland; struct wlr_xwayland *xwayland = server.xwayland.wlr_xwayland;
wlr_xwayland_set_seat(xwayland, seat->wlr_seat); wlr_xwayland_set_seat(xwayland, seat->wlr_seat);
seat_set_focus_surface(seat, xsurface->surface, false); seat_set_focus_surface(seat, xsurface->surface, false);
transaction_commit_dirty();
} }
} }
#endif #endif
@ -357,6 +359,7 @@ static void handle_button(struct sway_seat *seat, uint32_t time_msec,
if (node && node->type == N_WORKSPACE) { if (node && node->type == N_WORKSPACE) {
if (state == WLR_BUTTON_PRESSED) { if (state == WLR_BUTTON_PRESSED) {
seat_set_focus(seat, node); seat_set_focus(seat, node);
transaction_commit_dirty();
} }
seat_pointer_notify_button(seat, time_msec, button, state); seat_pointer_notify_button(seat, time_msec, button, state);
return; return;
@ -368,6 +371,7 @@ static void handle_button(struct sway_seat *seat, uint32_t time_msec,
wlr_layer_surface_v1_from_wlr_surface(surface); wlr_layer_surface_v1_from_wlr_surface(surface);
if (layer->current.keyboard_interactive) { if (layer->current.keyboard_interactive) {
seat_set_focus_layer(seat, layer); seat_set_focus_layer(seat, layer);
transaction_commit_dirty();
} }
seat_pointer_notify_button(seat, time_msec, button, state); seat_pointer_notify_button(seat, time_msec, button, state);
return; return;
@ -488,6 +492,7 @@ static void handle_button(struct sway_seat *seat, uint32_t time_msec,
if (cont && state == WLR_BUTTON_PRESSED) { if (cont && state == WLR_BUTTON_PRESSED) {
node = seat_get_focus_inactive(seat, &cont->node); node = seat_get_focus_inactive(seat, &cont->node);
seat_set_focus(seat, node); seat_set_focus(seat, node);
transaction_commit_dirty();
seat_pointer_notify_button(seat, time_msec, button, state); seat_pointer_notify_button(seat, time_msec, button, state);
return; return;
} }
@ -502,6 +507,7 @@ static void handle_button(struct sway_seat *seat, uint32_t time_msec,
struct wlr_xwayland *xwayland = server.xwayland.wlr_xwayland; struct wlr_xwayland *xwayland = server.xwayland.wlr_xwayland;
wlr_xwayland_set_seat(xwayland, seat->wlr_seat); wlr_xwayland_set_seat(xwayland, seat->wlr_seat);
seat_set_focus_surface(seat, xsurface->surface, false); seat_set_focus_surface(seat, xsurface->surface, false);
transaction_commit_dirty();
seat_pointer_notify_button(seat, time_msec, button, state); seat_pointer_notify_button(seat, time_msec, button, state);
return; return;
} }
@ -718,6 +724,7 @@ static void handle_pointer_axis(struct sway_seat *seat,
// Use the focused child of the tabbed/stacked container, not the // Use the focused child of the tabbed/stacked container, not the
// container the user scrolled on. // container the user scrolled on.
seat_set_focus(seat, new_focus); seat_set_focus(seat, new_focus);
transaction_commit_dirty();
handled = true; handled = true;
} }
} }