summaryrefslogtreecommitdiff
path: root/sway/input/seatop_resize_tiling.c
diff options
context:
space:
mode:
authorKenny Levinsen <[email protected]>2021-02-08 02:03:01 +0100
committerTudor Brindus <[email protected]>2021-02-14 13:19:08 -0500
commitb5b628cb41a4a316456d5ef3014f1a2cbdc5cfc2 (patch)
treef2dca5621c62d4fea0546c8b9eee99a3cc6dfd6c /sway/input/seatop_resize_tiling.c
parentb1b104152e52b4957a0d91e808f4446c50b1c22d (diff)
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_resize_tiling.c')
-rw-r--r--sway/input/seatop_resize_tiling.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sway/input/seatop_resize_tiling.c b/sway/input/seatop_resize_tiling.c
index 2cca805d..c5fe269e 100644
--- a/sway/input/seatop_resize_tiling.c
+++ b/sway/input/seatop_resize_tiling.c
@@ -2,6 +2,7 @@
#include <wlr/types/wlr_cursor.h>
#include <wlr/util/edges.h>
#include "sway/commands.h"
+#include "sway/desktop/transaction.h"
#include "sway/input/cursor.h"
#include "sway/input/seat.h"
#include "sway/tree/arrange.h"
@@ -67,6 +68,7 @@ static void handle_button(struct sway_seat *seat, uint32_t time_msec,
arrange_workspace(e->v_con->workspace);
}
}
+ transaction_commit_dirty();
seatop_begin_default(seat);
}
}
@@ -99,6 +101,7 @@ static void handle_pointer_motion(struct sway_seat *seat, uint32_t time_msec) {
if (amount_y != 0) {
container_resize_tiled(e->v_con, e->edge_y, amount_y);
}
+ transaction_commit_dirty();
}
static void handle_unref(struct sway_seat *seat, struct sway_container *con) {
@@ -158,5 +161,6 @@ void seatop_begin_resize_tiling(struct sway_seat *seat,
seat->seatop_impl = &seatop_impl;
seat->seatop_data = e;
+ transaction_commit_dirty();
wlr_seat_pointer_notify_clear_focus(seat->wlr_seat);
}