This commit is contained in:
Consolatis 2026-01-21 01:06:12 +00:00 committed by GitHub
commit 7c36d38ee4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 318 additions and 408 deletions

View file

@ -1,24 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef LABWC_PROTOCOLS_COSMIC_WORKSPACES_INTERNAL_H
#define LABWC_PROTOCOLS_COSMIC_WORKSPACES_INTERNAL_H
struct lab_cosmic_workspace;
struct lab_cosmic_workspace_group;
struct lab_cosmic_workspace_manager;
enum pending_change {
/* group events */
CW_PENDING_WS_CREATE = 1 << 0,
/* ws events*/
CW_PENDING_WS_ACTIVATE = 1 << 1,
CW_PENDING_WS_DEACTIVATE = 1 << 2,
CW_PENDING_WS_REMOVE = 1 << 3,
};
void cosmic_group_output_send_initial_state(struct lab_cosmic_workspace_group *group,
struct wl_resource *group_resource);
void cosmic_manager_schedule_done_event(struct lab_cosmic_workspace_manager *manager);
#endif /* LABWC_PROTOCOLS_COSMIC_WORKSPACES_INTERNAL_H */

View file

@ -78,8 +78,8 @@ void lab_cosmic_workspace_group_output_enter(
struct lab_cosmic_workspace_group *group, struct wlr_output *output);
void lab_cosmic_workspace_group_output_leave(
struct lab_cosmic_workspace_group *group, struct wlr_output *output);
void lab_cosmic_workspace_group_destroy(struct lab_cosmic_workspace_group *group);
struct lab_cosmic_workspace *lab_cosmic_workspace_create(struct lab_cosmic_workspace_group *group);

View file

@ -1,25 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef LABWC_PROTOCOLS_EXT_WORKSPACES_INTERNAL_H
#define LABWC_PROTOCOLS_EXT_WORKSPACES_INTERNAL_H
struct wl_resource;
struct lab_ext_workspace_group;
struct lab_ext_workspace_manager;
enum pending_ext_workspaces_change {
/* group events */
WS_PENDING_WS_CREATE = 1 << 0,
/* ws events*/
WS_PENDING_WS_ACTIVATE = 1 << 1,
WS_PENDING_WS_DEACTIVATE = 1 << 2,
WS_PENDING_WS_REMOVE = 1 << 3,
WS_PENDING_WS_ASSIGN = 1 << 4,
};
void ext_group_output_send_initial_state(struct lab_ext_workspace_group *group,
struct wl_resource *group_resource);
void ext_manager_schedule_done_event(struct lab_ext_workspace_manager *manager);
#endif /* LABWC_PROTOCOLS_EXT_WORKSPACES_INTERNAL_H */

View file

@ -0,0 +1,26 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef LABWC_PROTOCOLS_OUTPUT_TRACKER_H
#define LABWC_PROTOCOLS_OUTPUT_TRACKER_H
struct wl_client;
struct wl_resource;
struct wlr_output;
struct output_tracker_impl {
void (*send_output_enter)(struct wl_resource *object, struct wl_resource *output);
void (*send_output_leave)(struct wl_resource *object, struct wl_resource *output);
/* If only_to_client is NULL, broadcast done event to all resources of object */
void (*send_done)(void *object, struct wl_client *only_to_client);
};
void output_tracker_enter(void *object, struct wl_list *object_resources,
struct wlr_output *wlr_output, const struct output_tracker_impl *impl);
void output_tracker_leave(void *object, struct wlr_output *wlr_output);
void output_tracker_send_initial_state_to_resource(
void *object, struct wl_resource *object_resource);
void output_tracker_destroy(void *object);
#endif // LABWC_PROTOCOLS_OUTPUT_TRACKER_H