diff --git a/include/client.h b/include/client.h index 9902152..2ad616c 100644 --- a/include/client.h +++ b/include/client.h @@ -19,6 +19,18 @@ struct wlr_scene_shadow; /* Client types */ 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 { /* Must keep this field first — union-cast discriminant */ unsigned int type; /* XDGShell or X11 */ @@ -50,6 +62,11 @@ typedef struct Client { struct wlr_scene_tree *scene_surface; 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) */ struct wl_listener commit; struct wl_listener map;