cursor: add missing maybeResetState() callsite

This function needs to be called whenever pending state is made current,
which includes when views not tracked by the transaction system commit.
This commit is contained in:
Isaac Freund
2021-07-23 18:37:24 +02:00
parent f86291169e
commit 36ce81bb67
3 changed files with 7 additions and 5 deletions

View File

@ -178,6 +178,11 @@ pub fn inputAllowed(self: Self, wlr_surface: *wlr.Surface) bool {
true;
}
pub fn maybeResetCursorState(self: Self) void {
var it = self.seats.first;
while (it) |node| : (it = node.next) node.data.cursor.maybeResetState();
}
fn handleInhibitActivate(
listener: *wl.Listener(*wlr.InputInhibitManager),
input_inhibit_manager: *wlr.InputInhibitManager,

View File

@ -405,11 +405,7 @@ fn commitTransaction(self: *Self) void {
output.damage.addWhole();
}
var seat_it = server.input_manager.seats.first;
while (seat_it) |seat_node| : (seat_it = seat_node.next) {
seat_node.data.cursor.maybeResetState();
}
server.input_manager.maybeResetCursorState();
}
/// Send the new output configuration to all wlr-output-manager clients

View File

@ -273,6 +273,7 @@ fn handleCommit(listener: *wl.Listener(*wlr.Surface), surface: *wlr.Surface) voi
view.current = view.pending;
if (self_tags_changed) view.output.sendViewTags();
view.output.damage.addWhole();
server.input_manager.maybeResetCursorState();
}
} else {
// If the client has not yet acked our configure, we need to send a