summaryrefslogtreecommitdiff
path: root/sway/server.c
diff options
context:
space:
mode:
authorKenny Levinsen <[email protected]>2021-02-12 21:27:28 +0100
committerSimon Ser <[email protected]>2021-02-16 00:18:26 +0100
commitc8bf84c82d82e332c1bb83ff27c3df87576c892e (patch)
treecff03b4c167b30b9725e56654582f220dfc80c8f /sway/server.c
parentb944735b47a660efbe55563ecfbc086636c9832b (diff)
transactions: Amend pending transactions
The transaction system contains a necessary optimization where a popped transaction is combined with later, similar transactions. This breaks the chronological order of states, and can lead to desynchronized geometries. To fix this, we replace the queue with only 2 transactions: current and pending. If a pending transaction exists, it is updated with new state instead of creating additional transactions. As we never have more than a single waiting transaction, we no longer need the queue optimization that is causing problems. Closes: https://github.com/swaywm/sway/issues/6012
Diffstat (limited to 'sway/server.c')
-rw-r--r--sway/server.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/sway/server.c b/sway/server.c
index f180da9a..278afd19 100644
--- a/sway/server.c
+++ b/sway/server.c
@@ -199,7 +199,6 @@ bool server_init(struct sway_server *server) {
}
server->dirty_nodes = create_list();
- server->transactions = create_list();
server->input = input_manager_create(server);
input_manager_get_default_seat(); // create seat0
@@ -215,7 +214,6 @@ void server_fini(struct sway_server *server) {
wl_display_destroy_clients(server->wl_display);
wl_display_destroy(server->wl_display);
list_free(server->dirty_nodes);
- list_free(server->transactions);
}
bool server_start(struct sway_server *server) {