transaction: ready signals will return success bools

master
Alexander Orzechowski 3 years ago committed by Kirill Primak
parent 6d7b1321db
commit 08c484f46f

@ -1,6 +1,7 @@
#ifndef _SWAY_TRANSACTION_H #ifndef _SWAY_TRANSACTION_H
#define _SWAY_TRANSACTION_H #define _SWAY_TRANSACTION_H
#include <stdint.h> #include <stdint.h>
#include <stdbool.h>
/** /**
* Transactions enable us to perform atomic layout updates. * 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. * 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. * 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); 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. * identifying the instruction by geometry rather than by serial.
* *
* This is used by xwayland views, as they don't have serials. * 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); double x, double y, int width, int height);
#endif #endif

@ -499,16 +499,18 @@ static void set_instruction_ready(
transaction_progress(); 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) { uint32_t serial) {
struct sway_transaction_instruction *instruction = struct sway_transaction_instruction *instruction =
view->container->node.instruction; view->container->node.instruction;
if (instruction != NULL && instruction->serial == serial) { if (instruction != NULL && instruction->serial == serial) {
set_instruction_ready(instruction); 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) { double x, double y, int width, int height) {
struct sway_transaction_instruction *instruction = struct sway_transaction_instruction *instruction =
view->container->node.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_width == width &&
instruction->container_state.content_height == height) { instruction->container_state.content_height == height) {
set_instruction_ready(instruction); set_instruction_ready(instruction);
return true;
} }
return false;
} }
static void _transaction_commit_dirty(bool server_request) { static void _transaction_commit_dirty(bool server_request) {

Loading…
Cancel
Save