XdgToplevel: handle configure timeout gracefully
Currently configure timeouts hit the "client is buggy and initiated size change while tiled or fullscreen" code path even if the client is not in fact buggy. This causes state to get out of sync between river and the client, and is highly visible as the borders drawn by river no longer align with the buffer dimensions committed by the client. This commit fixes this by tracking acks/commits in response to configures even after a timeout and properly integrating them with the transaction system.
This commit is contained in:
@ -620,7 +620,7 @@ fn commitTransaction(root: *Self) void {
|
||||
view.tree.node.reparent(root.hidden.tree);
|
||||
view.popup_tree.node.reparent(root.hidden.tree);
|
||||
|
||||
view.updateCurrent();
|
||||
view.commitTransaction();
|
||||
}
|
||||
}
|
||||
|
||||
@ -657,7 +657,7 @@ fn commitTransaction(root: *Self) void {
|
||||
}
|
||||
}
|
||||
|
||||
view.updateCurrent();
|
||||
view.commitTransaction();
|
||||
|
||||
const enabled = view.current.tags & output.current.tags != 0;
|
||||
view.tree.node.setEnabled(enabled);
|
||||
|
Reference in New Issue
Block a user