6#include <phosphorcompositor_export.h>
62 return {OwnerKind::Rule, QString()};
137 QVector<Owner> owners;
139 bool evaluated =
false;
140 bool eligible =
false;
141 bool priorNoBorder =
false;
142 bool physicallyHidden =
false;
147 void reconcile(
const QString& windowId, Entry& entry, Placement placement);
150 void finishRelease(
const QString& windowId, Entry& entry);
155 WindowHandle resolveExact(
const QString& windowId)
const;
160 bool restoreNow(
const QString& windowId, Entry& entry,
bool reassertGeometry);
162 void pruneIfEmpty(
const QString& windowId);
164 QHash<QString, Entry> m_windows;
The single owner of server-side decoration (title-bar) state.
Definition DecorationManager.h:44
void resyncWindow(const QString &windowId)
The compositor can silently reset noBorder (KWin does on desktop switches).
void clearAllRuleOverrides()
Rules went away wholesale (rule set emptied / teardown): clear every Rule owner and veto,...
void forgetWindow(const QString &windowId)
Window destroyed: drop all state for it.
bool isOwned(const QString &windowId) const
void windowDecorationRestored(const QString &windowId)
Emitted after a physical decoration restore (the effect refreshes border overlays for the window).
bool isOwnedBy(const QString &windowId, const Owner &owner) const
void acquire(const QString &windowId, const Owner &owner, Placement placement=Placement::AlreadyPlaced)
Low-level primitive: take ownership of windowId's decoration and hide it per placement.
DecorationManager(ICompositorBridge &bridge, QObject *parent=nullptr)
bridge must outlive the manager (the KWin effect owns both, with the bridge destroyed after the manag...
void restoreAll()
Daemon loss / effect teardown: synchronously restore every window we hid to its prior state,...
OwnerKind
Definition DecorationManager.h:48
bool isVetoed(const QString &windowId) const
void setRuleOverride(const QString &windowId, std::optional< bool > ruleValue)
nullopt: rule has no opinion — clear Rule owner and veto.
static Owner rule()
Definition DecorationManager.h:60
Placement
How the physical hide coordinates with geometry application.
Definition DecorationManager.h:66
bool isBorderless(const QString &windowId) const
True when we physically suppressed the window's decoration.
Abstract interface bridging compositor-agnostic logic to compositor-specific APIs.
Definition ICompositorBridge.h:94
Definition DaemonClient.h:22
void * WindowHandle
Opaque handle to a compositor window.
Definition ICompositorBridge.h:31
An owner is a (kind, screen) pair.
Definition DecorationManager.h:55
bool operator==(const Owner &) const =default
QString screenId
Definition DecorationManager.h:57
OwnerKind kind
Definition DecorationManager.h:56