mirror of
https://github.com/NickHu/sway
synced 2024-12-25 21:58:16 +01:00
transaction: ready signals will return success bools
This commit is contained in:
parent
6d7b1321db
commit
08c484f46f
2 changed files with 15 additions and 4 deletions
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in a new issue