Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
PhosphorCompositor::ICompositorBridge Class Referenceabstract

Abstract interface bridging compositor-agnostic logic to compositor-specific APIs. More...

#include <phosphor-compositor/include/PhosphorCompositor/ICompositorBridge.h>

Public Member Functions

 ICompositorBridge ()=default
 
virtual ~ICompositorBridge ()=default
 
 ICompositorBridge (const ICompositorBridge &)=delete
 
ICompositorBridgeoperator= (const ICompositorBridge &)=delete
 
 ICompositorBridge (ICompositorBridge &&)=delete
 
ICompositorBridgeoperator= (ICompositorBridge &&)=delete
 
virtual WindowHandle findWindowById (const QString &windowId) const =0
 Find a window by its full window ID ("appId|instanceId")
 
virtual QVector< WindowHandlefindAllWindowsById (const QString &windowId) const =0
 Find all windows matching a window ID (exact + appId fallback for disambiguation)
 
virtual QVector< WindowHandlestackingOrder () const =0
 Get all managed windows in stacking order (bottom to top)
 
virtual QString windowId (WindowHandle w) const =0
 Get the full window ID for a window ("appId|instanceId")
 
virtual QString windowScreenId (WindowHandle w) const =0
 Get the screen ID where a window is located.
 
virtual QRectF frameGeometry (WindowHandle w) const =0
 
virtual QSizeF minSize (WindowHandle w) const =0
 
virtual bool isMinimized (WindowHandle w) const =0
 
virtual bool isOnCurrentDesktop (WindowHandle w) const =0
 
virtual bool isOnCurrentActivity (WindowHandle w) const =0
 
virtual bool hasDecoration (WindowHandle w) const =0
 
virtual WindowInfo windowInfo (WindowHandle w) const =0
 Fill a WindowInfo snapshot (for bulk operations)
 
virtual bool shouldHandleWindow (WindowHandle w) const =0
 Should this window be managed by PlasmaZones at all?
 
virtual bool isTileableWindow (WindowHandle w) const =0
 Is this window eligible for autotile (stricter than shouldHandle)?
 
virtual void moveResize (WindowHandle w, const QRectF &geometry)=0
 Move/resize a window to the given geometry.
 
virtual void setNoBorder (WindowHandle w, bool noBorder)=0
 Set/remove server-side decoration (title bar)
 
virtual void setMaximized (WindowHandle w, bool maximized)=0
 Maximize or restore a window.
 
virtual void activateWindow (WindowHandle w)=0
 Give input focus to a window.
 
virtual void raiseWindow (WindowHandle w)=0
 Raise a window in the stacking order.
 
virtual void applySnapGeometry (WindowHandle w, const QRectF &geometry, bool skipAnimation=false)=0
 Apply snap geometry with optional animation.
 
virtual QObject * asQObject ()=0
 Get the QObject parent for D-Bus watcher ownership.
 
virtual bool isDaemonReady () const =0
 Check if the daemon D-Bus service is registered and ready.
 
virtual void invalidateScreenIdCache ()=0
 Invalidate cached screen IDs (call on screen add/remove/reconfigure)
 

Detailed Description

Abstract interface bridging compositor-agnostic logic to compositor-specific APIs.

This interface allows shared code (autotile state management, D-Bus signal dispatch, snap assist candidate building, etc.) to operate on windows without knowing whether the compositor is KWin, Wayfire, or something else.

Each compositor plugin implements this interface. The shared code calls these methods instead of directly accessing compositor-specific APIs.

Design principles:

  • Methods take WindowHandle (void*) — plugins static_cast to their native type
  • Bulk operations use WindowInfo snapshots to avoid virtual call overhead
  • Only methods actually needed by shared code are included (no speculative API)
  • D-Bus helpers (fireAndForget, asyncCall) are free functions, not on this interface

Constructor & Destructor Documentation

◆ ICompositorBridge() [1/3]

PhosphorCompositor::ICompositorBridge::ICompositorBridge ( )
default

◆ ~ICompositorBridge()

virtual PhosphorCompositor::ICompositorBridge::~ICompositorBridge ( )
virtualdefault

◆ ICompositorBridge() [2/3]

PhosphorCompositor::ICompositorBridge::ICompositorBridge ( const ICompositorBridge )
delete

◆ ICompositorBridge() [3/3]

PhosphorCompositor::ICompositorBridge::ICompositorBridge ( ICompositorBridge &&  )
delete

Member Function Documentation

◆ activateWindow()

virtual void PhosphorCompositor::ICompositorBridge::activateWindow ( WindowHandle  w)
pure virtual

Give input focus to a window.

◆ applySnapGeometry()

virtual void PhosphorCompositor::ICompositorBridge::applySnapGeometry ( WindowHandle  w,
const QRectF &  geometry,
bool  skipAnimation = false 
)
pure virtual

Apply snap geometry with optional animation.

◆ asQObject()

virtual QObject * PhosphorCompositor::ICompositorBridge::asQObject ( )
pure virtual

Get the QObject parent for D-Bus watcher ownership.

◆ findAllWindowsById()

virtual QVector< WindowHandle > PhosphorCompositor::ICompositorBridge::findAllWindowsById ( const QString &  windowId) const
pure virtual

Find all windows matching a window ID (exact + appId fallback for disambiguation)

◆ findWindowById()

virtual WindowHandle PhosphorCompositor::ICompositorBridge::findWindowById ( const QString &  windowId) const
pure virtual

Find a window by its full window ID ("appId|instanceId")

◆ frameGeometry()

virtual QRectF PhosphorCompositor::ICompositorBridge::frameGeometry ( WindowHandle  w) const
pure virtual

◆ hasDecoration()

virtual bool PhosphorCompositor::ICompositorBridge::hasDecoration ( WindowHandle  w) const
pure virtual

◆ invalidateScreenIdCache()

virtual void PhosphorCompositor::ICompositorBridge::invalidateScreenIdCache ( )
pure virtual

Invalidate cached screen IDs (call on screen add/remove/reconfigure)

◆ isDaemonReady()

virtual bool PhosphorCompositor::ICompositorBridge::isDaemonReady ( ) const
pure virtual

Check if the daemon D-Bus service is registered and ready.

◆ isMinimized()

virtual bool PhosphorCompositor::ICompositorBridge::isMinimized ( WindowHandle  w) const
pure virtual

◆ isOnCurrentActivity()

virtual bool PhosphorCompositor::ICompositorBridge::isOnCurrentActivity ( WindowHandle  w) const
pure virtual

◆ isOnCurrentDesktop()

virtual bool PhosphorCompositor::ICompositorBridge::isOnCurrentDesktop ( WindowHandle  w) const
pure virtual

◆ isTileableWindow()

virtual bool PhosphorCompositor::ICompositorBridge::isTileableWindow ( WindowHandle  w) const
pure virtual

Is this window eligible for autotile (stricter than shouldHandle)?

◆ minSize()

virtual QSizeF PhosphorCompositor::ICompositorBridge::minSize ( WindowHandle  w) const
pure virtual

◆ moveResize()

virtual void PhosphorCompositor::ICompositorBridge::moveResize ( WindowHandle  w,
const QRectF &  geometry 
)
pure virtual

Move/resize a window to the given geometry.

◆ operator=() [1/2]

ICompositorBridge & PhosphorCompositor::ICompositorBridge::operator= ( const ICompositorBridge )
delete

◆ operator=() [2/2]

ICompositorBridge & PhosphorCompositor::ICompositorBridge::operator= ( ICompositorBridge &&  )
delete

◆ raiseWindow()

virtual void PhosphorCompositor::ICompositorBridge::raiseWindow ( WindowHandle  w)
pure virtual

Raise a window in the stacking order.

◆ setMaximized()

virtual void PhosphorCompositor::ICompositorBridge::setMaximized ( WindowHandle  w,
bool  maximized 
)
pure virtual

Maximize or restore a window.

◆ setNoBorder()

virtual void PhosphorCompositor::ICompositorBridge::setNoBorder ( WindowHandle  w,
bool  noBorder 
)
pure virtual

Set/remove server-side decoration (title bar)

◆ shouldHandleWindow()

virtual bool PhosphorCompositor::ICompositorBridge::shouldHandleWindow ( WindowHandle  w) const
pure virtual

Should this window be managed by PlasmaZones at all?

◆ stackingOrder()

virtual QVector< WindowHandle > PhosphorCompositor::ICompositorBridge::stackingOrder ( ) const
pure virtual

Get all managed windows in stacking order (bottom to top)

◆ windowId()

virtual QString PhosphorCompositor::ICompositorBridge::windowId ( WindowHandle  w) const
pure virtual

Get the full window ID for a window ("appId|instanceId")

◆ windowInfo()

virtual WindowInfo PhosphorCompositor::ICompositorBridge::windowInfo ( WindowHandle  w) const
pure virtual

Fill a WindowInfo snapshot (for bulk operations)

◆ windowScreenId()

virtual QString PhosphorCompositor::ICompositorBridge::windowScreenId ( WindowHandle  w) const
pure virtual

Get the screen ID where a window is located.


The documentation for this class was generated from the following file: