mirror of
https://github.com/NickHu/sway
synced 2024-12-28 22:23:30 +01:00
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:
parent
a3d45c3280
commit
28cadf5580
1 changed files with 7 additions and 0 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue