aboutsummaryrefslogtreecommitdiffstats
path: root/sway/input/cursor.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/cursor.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/cursor.c')
-rw-r--r--sway/input/cursor.c13
1 files changed, 0 insertions, 13 deletions
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index fa604426..b40e0299 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -20,7 +20,6 @@
20#include "util.h" 20#include "util.h"
21#include "sway/commands.h" 21#include "sway/commands.h"
22#include "sway/desktop.h" 22#include "sway/desktop.h"
23#include "sway/desktop/transaction.h"
24#include "sway/input/cursor.h" 23#include "sway/input/cursor.h"
25#include "sway/input/keyboard.h" 24#include "sway/input/keyboard.h"
26#include "sway/input/tablet.h" 25#include "sway/input/tablet.h"
@@ -383,7 +382,6 @@ static void handle_pointer_motion_relative(
383 382
384 pointer_motion(cursor, e->time_msec, e->device, e->delta_x, e->delta_y, 383 pointer_motion(cursor, e->time_msec, e->device, e->delta_x, e->delta_y,
385 e->unaccel_dx, e->unaccel_dy); 384 e->unaccel_dx, e->unaccel_dy);
386 transaction_commit_dirty();
387} 385}
388 386
389static void handle_pointer_motion_absolute( 387static void handle_pointer_motion_absolute(
@@ -401,7 +399,6 @@ static void handle_pointer_motion_absolute(
401 double dy = ly - cursor->cursor->y; 399 double dy = ly - cursor->cursor->y;
402 400
403 pointer_motion(cursor, event->time_msec, event->device, dx, dy, dx, dy); 401 pointer_motion(cursor, event->time_msec, event->device, dx, dy, dx, dy);
404 transaction_commit_dirty();
405} 402}
406 403
407void dispatch_cursor_button(struct sway_cursor *cursor, 404void dispatch_cursor_button(struct sway_cursor *cursor,
@@ -431,7 +428,6 @@ static void handle_pointer_button(struct wl_listener *listener, void *data) {
431 cursor_handle_activity_from_device(cursor, event->device); 428 cursor_handle_activity_from_device(cursor, event->device);
432 dispatch_cursor_button(cursor, event->device, 429 dispatch_cursor_button(cursor, event->device,
433 event->time_msec, event->button, event->state); 430 event->time_msec, event->button, event->state);
434 transaction_commit_dirty();
435} 431}
436 432
437void dispatch_cursor_axis(struct sway_cursor *cursor, 433void dispatch_cursor_axis(struct sway_cursor *cursor,
@@ -444,7 +440,6 @@ static void handle_pointer_axis(struct wl_listener *listener, void *data) {
444 struct wlr_event_pointer_axis *event = data; 440 struct wlr_event_pointer_axis *event = data;
445 cursor_handle_activity_from_device(cursor, event->device); 441 cursor_handle_activity_from_device(cursor, event->device);
446 dispatch_cursor_axis(cursor, event); 442 dispatch_cursor_axis(cursor, event);
447 transaction_commit_dirty();
448} 443}
449 444
450static void handle_pointer_frame(struct wl_listener *listener, void *data) { 445static void handle_pointer_frame(struct wl_listener *listener, void *data) {
@@ -495,7 +490,6 @@ static void handle_touch_down(struct wl_listener *listener, void *data) {
495 dispatch_cursor_button(cursor, event->device, event->time_msec, 490 dispatch_cursor_button(cursor, event->device, event->time_msec,
496 BTN_LEFT, WLR_BUTTON_PRESSED); 491 BTN_LEFT, WLR_BUTTON_PRESSED);
497 wlr_seat_pointer_notify_frame(wlr_seat); 492 wlr_seat_pointer_notify_frame(wlr_seat);
498 transaction_commit_dirty();
499 } 493 }
500} 494}
501 495
@@ -512,7 +506,6 @@ static void handle_touch_up(struct wl_listener *listener, void *data) {
512 dispatch_cursor_button(cursor, event->device, event->time_msec, 506 dispatch_cursor_button(cursor, event->device, event->time_msec,
513 BTN_LEFT, WLR_BUTTON_RELEASED); 507 BTN_LEFT, WLR_BUTTON_RELEASED);
514 wlr_seat_pointer_notify_frame(wlr_seat); 508 wlr_seat_pointer_notify_frame(wlr_seat);
515 transaction_commit_dirty();
516 } 509 }
517 } else { 510 } else {
518 wlr_seat_touch_notify_up(wlr_seat, event->time_msec, event->touch_id); 511 wlr_seat_touch_notify_up(wlr_seat, event->time_msec, event->touch_id);
@@ -553,7 +546,6 @@ static void handle_touch_motion(struct wl_listener *listener, void *data) {
553 dx = lx - cursor->cursor->x; 546 dx = lx - cursor->cursor->x;
554 dy = ly - cursor->cursor->y; 547 dy = ly - cursor->cursor->y;
555 pointer_motion(cursor, event->time_msec, event->device, dx, dy, dx, dy); 548 pointer_motion(cursor, event->time_msec, event->device, dx, dy, dx, dy);
556 transaction_commit_dirty();
557 } 549 }
558 } else if (surface) { 550 } else if (surface) {
559 wlr_seat_touch_notify_motion(wlr_seat, event->time_msec, 551 wlr_seat_touch_notify_motion(wlr_seat, event->time_msec,
@@ -639,8 +631,6 @@ static void handle_tablet_tool_position(struct sway_cursor *cursor,
639 wlr_tablet_v2_tablet_tool_notify_proximity_out(tool->tablet_v2_tool); 631 wlr_tablet_v2_tablet_tool_notify_proximity_out(tool->tablet_v2_tool);
640 pointer_motion(cursor, time_msec, input_device->wlr_device, dx, dy, dx, dy); 632 pointer_motion(cursor, time_msec, input_device->wlr_device, dx, dy, dx, dy);
641 } 633 }
642
643 transaction_commit_dirty();
644} 634}
645 635
646static void handle_tool_axis(struct wl_listener *listener, void *data) { 636static void handle_tool_axis(struct wl_listener *listener, void *data) {
@@ -720,7 +710,6 @@ static void handle_tool_tip(struct wl_listener *listener, void *data) {
720 dispatch_cursor_button(cursor, event->device, event->time_msec, 710 dispatch_cursor_button(cursor, event->device, event->time_msec,
721 BTN_LEFT, WLR_BUTTON_RELEASED); 711 BTN_LEFT, WLR_BUTTON_RELEASED);
722 wlr_seat_pointer_notify_frame(cursor->seat->wlr_seat); 712 wlr_seat_pointer_notify_frame(cursor->seat->wlr_seat);
723 transaction_commit_dirty();
724 } else if (!surface || !wlr_surface_accepts_tablet_v2(tablet_v2, surface)) { 713 } else if (!surface || !wlr_surface_accepts_tablet_v2(tablet_v2, surface)) {
725 // If we started holding the tool tip down on a surface that accepts 714 // If we started holding the tool tip down on a surface that accepts
726 // tablet v2, we should notify that surface if it gets released over a 715 // tablet v2, we should notify that surface if it gets released over a
@@ -733,7 +722,6 @@ static void handle_tool_tip(struct wl_listener *listener, void *data) {
733 dispatch_cursor_button(cursor, event->device, event->time_msec, 722 dispatch_cursor_button(cursor, event->device, event->time_msec,
734 BTN_LEFT, WLR_BUTTON_PRESSED); 723 BTN_LEFT, WLR_BUTTON_PRESSED);
735 wlr_seat_pointer_notify_frame(cursor->seat->wlr_seat); 724 wlr_seat_pointer_notify_frame(cursor->seat->wlr_seat);
736 transaction_commit_dirty();
737 } 725 }
738 } else { 726 } else {
739 seatop_tablet_tool_tip(seat, sway_tool, event->time_msec, event->state); 727 seatop_tablet_tool_tip(seat, sway_tool, event->time_msec, event->state);
@@ -820,7 +808,6 @@ static void handle_tool_button(struct wl_listener *listener, void *data) {
820 break; 808 break;
821 } 809 }
822 wlr_seat_pointer_notify_frame(cursor->seat->wlr_seat); 810 wlr_seat_pointer_notify_frame(cursor->seat->wlr_seat);
823 transaction_commit_dirty();
824 return; 811 return;
825 } 812 }
826 813