aboutsummaryrefslogtreecommitdiffstats
path: root/sway/input/seatop_move_tiling.c
diff options
context:
space:
mode:
authorLibravatar Kenny Levinsen <kl@kl.wtf>2021-02-08 02:03:01 +0100
committerLibravatar Tudor Brindus <me@tbrindus.ca>2021-02-14 13:19:08 -0500
commitb5b628cb41a4a316456d5ef3014f1a2cbdc5cfc2 (patch)
treef2dca5621c62d4fea0546c8b9eee99a3cc6dfd6c /sway/input/seatop_move_tiling.c
parentreadme: update French translation (diff)
downloadsway-b5b628cb41a4a316456d5ef3014f1a2cbdc5cfc2.tar.gz
sway-b5b628cb41a4a316456d5ef3014f1a2cbdc5cfc2.tar.zst
sway-b5b628cb41a4a316456d5ef3014f1a2cbdc5cfc2.zip
input: Only commit transactions when necessary
There is no need to check for transactions at the end of every user input, as the vast majority of input will not issue transactions. This implementation can also hide where changes are made without an appropriate transaction commit, as a future unrelated input would issue the commit instead. Instead, commit transactions in places where changes are made or are likely to be made.
Diffstat (limited to 'sway/input/seatop_move_tiling.c')
-rw-r--r--sway/input/seatop_move_tiling.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sway/input/seatop_move_tiling.c b/sway/input/seatop_move_tiling.c
index 704e7270..7d9ecd8f 100644
--- a/sway/input/seatop_move_tiling.c
+++ b/sway/input/seatop_move_tiling.c
@@ -3,6 +3,7 @@
3#include <wlr/types/wlr_cursor.h> 3#include <wlr/types/wlr_cursor.h>
4#include <wlr/util/edges.h> 4#include <wlr/util/edges.h>
5#include "sway/desktop.h" 5#include "sway/desktop.h"
6#include "sway/desktop/transaction.h"
6#include "sway/input/cursor.h" 7#include "sway/input/cursor.h"
7#include "sway/input/seat.h" 8#include "sway/input/seat.h"
8#include "sway/ipc-server.h" 9#include "sway/ipc-server.h"
@@ -214,6 +215,7 @@ static void handle_pointer_motion(struct sway_seat *seat, uint32_t time_msec) {
214 } else { 215 } else {
215 handle_motion_prethreshold(seat); 216 handle_motion_prethreshold(seat);
216 } 217 }
218 transaction_commit_dirty();
217} 219}
218 220
219static bool is_parallel(enum sway_container_layout layout, 221static bool is_parallel(enum sway_container_layout layout,
@@ -294,6 +296,7 @@ static void finalize_move(struct sway_seat *seat) {
294 arrange_workspace(new_ws); 296 arrange_workspace(new_ws);
295 } 297 }
296 298
299 transaction_commit_dirty();
297 seatop_begin_default(seat); 300 seatop_begin_default(seat);
298} 301}
299 302
@@ -348,6 +351,7 @@ void seatop_begin_move_tiling_threshold(struct sway_seat *seat,
348 seat->seatop_data = e; 351 seat->seatop_data = e;
349 352
350 container_raise_floating(con); 353 container_raise_floating(con);
354 transaction_commit_dirty();
351 wlr_seat_pointer_notify_clear_focus(seat->wlr_seat); 355 wlr_seat_pointer_notify_clear_focus(seat->wlr_seat);
352} 356}
353 357