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
No known key found for this signature in database
GPG key ID: 86DED400DDFD7A11
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