add support to protocol: output-power-manager + output-manager

This commit is contained in:
DanyLE
2025-07-09 20:32:33 +02:00
parent 194b7894cd
commit 9cc2408dc8
6 changed files with 779 additions and 99 deletions

30
diyac.h
View File

@ -18,6 +18,8 @@
#include <wlr/types/wlr_foreign_toplevel_management_v1.h>
#include <wlr/types/wlr_session_lock_v1.h>
#include <wlr/types/wlr_virtual_keyboard_v1.h>
#include <wlr/types/wlr_output_power_management_v1.h>
#include <wlr/types/wlr_output_management_v1.h>
#define LAYER_TREE_SZ 4
@ -110,13 +112,13 @@ struct diyac_node_descriptor
struct diyac_session_lock
{
bool abandoned;
struct wlr_surface * focused;
struct wlr_surface *focused;
struct wlr_session_lock_v1* wlr_session_lock;
struct wlr_session_lock_v1 *wlr_session_lock;
struct wl_listener new_surface;
struct wl_listener unlock;
struct wl_listener destroy;
//struct wl_listener new_output;
// struct wl_listener new_output;
};
struct diyac_server
@ -136,7 +138,7 @@ struct diyac_server
struct wl_listener new_layer_surface;
struct wl_list views;
struct diyac_view * active_view;
struct diyac_view *active_view;
struct wlr_foreign_toplevel_manager_v1 *foreign_toplevel_manager;
/*
* Popups need to be rendered above always-on-top views, so we reparent
@ -156,9 +158,17 @@ struct diyac_server
struct wl_list outputs;
struct wl_listener new_output;
struct diyac_session_lock * lock;
struct wlr_output_power_manager_v1 *output_power_manager;
struct wl_listener output_power_manager_set_mode;
struct wl_event_source* proc_mon;
struct wlr_output_manager_v1 *output_manager;
struct wl_listener output_manager_test;
struct wl_listener output_manager_apply;
struct wl_listener output_layout_change;
struct diyac_session_lock *lock;
struct wl_event_source *proc_mon;
pid_t session_pid;
};
@ -181,7 +191,7 @@ struct diyac_output_lock_handle
struct wlr_scene_rect *background;
struct wlr_session_lock_surface_v1 *surface;
struct diyac_output * output;
struct diyac_output *output;
struct wl_listener surface_destroy;
struct wl_listener surface_map;
@ -197,13 +207,15 @@ struct diyac_output
struct wl_listener request_state;
struct wl_listener destroy;
struct wlr_box usable_area;
struct wlr_output_state pending_state;
struct wlr_scene_output* scene_output;
// layer output
struct diyac_output_scenes scenes;
// alias to diyac_output_scenes elements
struct wlr_scene_tree *layer_tree[LAYER_TREE_SZ];
// lock handle
struct diyac_output_lock_handle * lock_handle;
struct diyac_output_lock_handle *lock_handle;
};
struct foreign_toplevel
@ -227,7 +239,7 @@ struct diyac_view
struct diyac_view_state state;
struct diyac_view_state requested;
uint32_t configuration_serial;
struct wl_event_source * configuration_timeout;
struct wl_event_source *configuration_timeout;
/*
* Geometry of the wlr_surface contained within the view, as
* currently displayed. Should be kept in sync with the