client: add ClientRuleEffects, can_float, can_fullscreen to Client struct

This commit is contained in:
2026-07-03 03:29:56 -04:00
parent 99eb9686c5
commit 7a01cd9db3
+17
View File
@@ -19,6 +19,18 @@ struct wlr_scene_shadow;
/* Client types */ /* Client types */
enum { XDGShell, LayerShell, X11 }; enum { XDGShell, LayerShell, X11 };
/* Per-client rule effects — standalone typedef (no parser.h include to avoid circular deps) */
typedef struct {
bool rounding;
bool shadows;
bool transparency;
bool blur;
bool gaps;
bool smartgaps;
bool border;
bool sloppy_focus;
} ClientRuleEffects;
typedef struct Client { typedef struct Client {
/* Must keep this field first — union-cast discriminant */ /* Must keep this field first — union-cast discriminant */
unsigned int type; /* XDGShell or X11 */ unsigned int type; /* XDGShell or X11 */
@@ -50,6 +62,11 @@ typedef struct Client {
struct wlr_scene_tree *scene_surface; struct wlr_scene_tree *scene_surface;
struct wlr_xdg_toplevel_decoration_v1 *decoration; struct wlr_xdg_toplevel_decoration_v1 *decoration;
/* Per-rule constraints and effects */
bool can_float;
bool can_fullscreen;
ClientRuleEffects rule_effects;
/* COLD — wl_listeners (set up once, rarely touched after) */ /* COLD — wl_listeners (set up once, rarely touched after) */
struct wl_listener commit; struct wl_listener commit;
struct wl_listener map; struct wl_listener map;