sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 08c484f46f130aa7e590ef4bcb39d2ceed7160f6
parent 6d7b1321db54155cf78305dbafdcfc7de9b78415
Author: Alexander Orzechowski <orzechowski.alexander@gmail.com>
Date:   Fri,  4 Mar 2022 20:38:04 -0500

transaction: ready signals will return success bools

Diffstat:
Minclude/sway/desktop/transaction.h | 11+++++++++--
Msway/desktop/transaction.c | 8++++++--
2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/include/sway/desktop/transaction.h b/include/sway/desktop/transaction.h @@ -1,6 +1,7 @@ #ifndef _SWAY_TRANSACTION_H #define _SWAY_TRANSACTION_H #include <stdint.h> +#include <stdbool.h> /** * Transactions enable us to perform atomic layout updates. @@ -38,8 +39,11 @@ void transaction_commit_dirty_client(void); * Notify the transaction system that a view is ready for the new layout. * * When all views in the transaction are ready, the layout will be applied. + * + * A success boolean is returned denoting that this part of the transaction is + * ready. */ -void transaction_notify_view_ready_by_serial(struct sway_view *view, +bool transaction_notify_view_ready_by_serial(struct sway_view *view, uint32_t serial); /** @@ -47,8 +51,11 @@ void transaction_notify_view_ready_by_serial(struct sway_view *view, * identifying the instruction by geometry rather than by serial. * * This is used by xwayland views, as they don't have serials. + * + * A success boolean is returned denoting that this part of the transaction is + * ready. */ -void transaction_notify_view_ready_by_geometry(struct sway_view *view, +bool transaction_notify_view_ready_by_geometry(struct sway_view *view, double x, double y, int width, int height); #endif diff --git a/sway/desktop/transaction.c b/sway/desktop/transaction.c @@ -499,16 +499,18 @@ static void set_instruction_ready( transaction_progress(); } -void transaction_notify_view_ready_by_serial(struct sway_view *view, +bool transaction_notify_view_ready_by_serial(struct sway_view *view, uint32_t serial) { struct sway_transaction_instruction *instruction = view->container->node.instruction; if (instruction != NULL && instruction->serial == serial) { set_instruction_ready(instruction); + return true; } + return false; } -void transaction_notify_view_ready_by_geometry(struct sway_view *view, +bool transaction_notify_view_ready_by_geometry(struct sway_view *view, double x, double y, int width, int height) { struct sway_transaction_instruction *instruction = view->container->node.instruction; @@ -518,7 +520,9 @@ void transaction_notify_view_ready_by_geometry(struct sway_view *view, instruction->container_state.content_width == width && instruction->container_state.content_height == height) { set_instruction_ready(instruction); + return true; } + return false; } static void _transaction_commit_dirty(bool server_request) {