26class ICrossSurfaceResolver;
77 virtual void windowOpened(
const QString& windowId,
const QString& screenId,
int minWidth = 0,
78 int minHeight = 0) = 0;
81 void windowOpened(
const QString& windowId,
const QString& screenId)
83 windowOpened(windowId, screenId, 0, 0);
92 virtual void windowFocused(
const QString& windowId,
const QString& screenId) = 0;
345 virtual void onWindowResized(
const QString& windowId,
const QRect& oldFrame,
const QRect& newFrame,
346 const QString& screenId)
397 bool wasFloating =
false;
398 int insertIndex = -1;
461 Q_UNUSED(insertIndex)
474 Q_UNUSED(algorithmId)
528 Q_UNUSED(isWindowSticky)
536 Q_UNUSED(removedDesktop)
540 Q_UNUSED(validActivities)
572 virtual void retile(
const QString& screenId = QString())
Resolves the neighbouring surface — output or virtual desktop — in a direction, for cross-surface win...
Definition ICrossSurfaceResolver.h:21
Unified placement engine interface.
Definition IPlacementEngine.h:61
virtual QString activeScreen() const
Definition IPlacementEngine.h:480
virtual QString dragInsertPreviewScreenId() const
Definition IPlacementEngine.h:291
virtual void applyPerScreenConfig(const QString &screenId, const QVariantMap &overrides)
Definition IPlacementEngine.h:243
virtual void increaseMasterCount()
Definition IPlacementEngine.h:624
virtual QString engineId() const
Stable engine identity for HandoffContext.fromEngineId.
Definition IPlacementEngine.h:444
virtual void setAlgorithm(const QString &algorithmId)
Definition IPlacementEngine.h:472
void windowOpened(const QString &windowId, const QString &screenId)
Convenience overload — equivalent to windowOpened(id, screen, 0, 0).
Definition IPlacementEngine.h:81
virtual void setCurrentActivity(const QString &activity)
Definition IPlacementEngine.h:513
virtual int runtimeMaxWindows() const
Runtime max-windows limit.
Definition IPlacementEngine.h:563
virtual void setActiveScreenHint(const QString &screenId)
Definition IPlacementEngine.h:484
virtual void setWindowRegistry(QObject *registry)
Attach a window-class registry (QObject carrying WindowRegistry).
Definition IPlacementEngine.h:608
virtual void onWindowResized(const QString &windowId, const QRect &oldFrame, const QRect &newFrame, const QString &screenId)
Notify the engine that a tracked window finished an interactive resize.
Definition IPlacementEngine.h:345
virtual void setCurrentDesktopForScreen(const QString &screenId, int desktop)
Set a single screen's current virtual desktop (Plasma 6.7 "switch desktops independently for each scr...
Definition IPlacementEngine.h:503
virtual void setActiveScreens(const QSet< QString > &screens)
Definition IPlacementEngine.h:154
virtual void windowFocused(const QString &windowId, const QString &screenId)=0
A window gained focus (called when the compositor reports activation).
virtual QString screenForTrackedWindow(const QString &windowId) const
Return the screen this engine considers the window to be on, or empty if the window isn't tracked by ...
Definition IPlacementEngine.h:330
virtual void increaseMasterRatio(qreal delta=0.05)
Definition IPlacementEngine.h:616
virtual bool isWindowTracked(const QString &windowId) const
Definition IPlacementEngine.h:295
virtual void commitDragInsertPreview()
Definition IPlacementEngine.h:285
virtual void moveFocusedInDirection(const QString &direction, const NavigationContext &ctx)=0
Move the focused window to the adjacent slot.
virtual void scheduleRetileForScreen(const QString &screenId)
Definition IPlacementEngine.h:576
virtual void swapFocusedWithMaster()
Definition IPlacementEngine.h:633
virtual void handoffRelease(const QString &windowId)
Release ownership of a window WITHOUT modifying its geometry.
Definition IPlacementEngine.h:436
virtual bool isWindowTiled(const QString &windowId) const
Whether the window is actively tiled (engine-owned, non-floating).
Definition IPlacementEngine.h:314
virtual ~IPlacementEngine()=default
virtual void setCrossSurfaceResolver(ICrossSurfaceResolver *resolver)
Inject the cross-surface resolver used to find a neighbouring output / desktop when directional navig...
Definition IPlacementEngine.h:522
virtual void setInitialWindowOrder(const QString &screenId, const QStringList &windowIds)
Definition IPlacementEngine.h:233
virtual void restoreFocusedWindow(const NavigationContext &ctx)=0
Restore the focused window out of its managed state.
virtual void clearCurrentDesktopForScreen(const QString &screenId)
Drop a screen's per-output desktop, reverting it to the global current.
Definition IPlacementEngine.h:509
virtual IPlacementState * stateForScreen(const QString &screenId)=0
Per-screen state object for the given screen.
virtual void handoffReceive(const HandoffContext &ctx)
Receive ownership of a window from another engine.
Definition IPlacementEngine.h:419
virtual void focusMaster()
Definition IPlacementEngine.h:630
virtual QString algorithmId() const
Definition IPlacementEngine.h:468
virtual void saveState()=0
virtual void deserializeEngineState(const QJsonObject &state)
Definition IPlacementEngine.h:645
virtual bool hasDragInsertPreview() const
Definition IPlacementEngine.h:275
virtual void focusInDirection(const QString &direction, const NavigationContext &ctx)=0
Move keyboard focus to the adjacent window.
virtual void windowOpened(const QString &windowId, const QString &screenId, int minWidth=0, int minHeight=0)=0
A new window appeared on this engine's screen.
virtual void clearModeSpecificFloatMarker(const QString &windowId)
Definition IPlacementEngine.h:267
virtual void moveFocusedToPosition(int position, const NavigationContext &ctx)=0
Move the focused window to the Nth position.
virtual void refreshConfigFromSettings()
Re-read all tuning values from the engine's settings interface.
Definition IPlacementEngine.h:552
virtual QSet< QString > activeScreens() const
Definition IPlacementEngine.h:150
virtual bool isWindowManaged(const QString &windowId) const
Whether the engine considers the window "managed" (eligible for layout operations).
Definition IPlacementEngine.h:306
virtual void retile(const QString &screenId=QString())
Definition IPlacementEngine.h:572
virtual const IPlacementState * stateForScreen(const QString &screenId) const =0
virtual bool restorePlacement(const WindowPlacement &placement, const QString &screenId)
Apply placement to a (re)opening window on screenId.
Definition IPlacementEngine.h:217
virtual bool isEnabled() const noexcept
Definition IPlacementEngine.h:476
virtual qreal effectiveSplitRatioStep(const QString &screenId) const
Definition IPlacementEngine.h:555
virtual bool isActiveOnScreen(const QString &screenId) const =0
Whether this engine is active on the given screen.
virtual void toggleWindowFloat(const QString &windowId, const QString &screenId)=0
Toggle between managed and floating.
virtual void swapFocusedInDirection(const QString &direction, const NavigationContext &ctx)=0
Swap the focused window with the adjacent window.
virtual bool isModeSpecificFloated(const QString &windowId) const
Definition IPlacementEngine.h:262
virtual void rotateWindows(bool clockwise, const NavigationContext &ctx)=0
Rotate all managed windows on the screen.
virtual bool beginDragInsertPreview(const QString &windowId, const QString &screenId)
Definition IPlacementEngine.h:279
virtual void snapAllWindows(const NavigationContext &ctx)=0
Snap every unmanaged window on the screen to the current layout.
virtual void setWindowFloat(const QString &windowId, bool shouldFloat)=0
Set floating state explicitly (directional, not toggle).
virtual QJsonObject serializeEngineState() const
Definition IPlacementEngine.h:641
virtual void cycleFocus(bool forward, const NavigationContext &ctx)=0
Cycle keyboard focus through managed windows.
virtual void toggleFocusedFloat(const NavigationContext &ctx)=0
Toggle the focused window between managed and floating.
virtual void windowClosed(const QString &windowId)=0
A window was closed.
virtual void clearPerScreenConfig(const QString &screenId)
Definition IPlacementEngine.h:248
virtual void reapplyLayout(const NavigationContext &ctx)=0
Re-apply the current layout to all managed windows.
virtual void updateStickyScreenPins(const std::function< bool(const QString &)> &isWindowSticky)
Definition IPlacementEngine.h:526
virtual void updateDragInsertPreview(int insertIndex)
Update the target insert index for an active drag-insert preview.
Definition IPlacementEngine.h:459
virtual void reapplyManagedWindowAppearance()
Re-drive the compositor's per-window appearance (border, hidden title bar) for every window this engi...
Definition IPlacementEngine.h:174
virtual void setCurrentDesktop(int desktop)
Definition IPlacementEngine.h:493
virtual void cancelDragInsertPreview()
Definition IPlacementEngine.h:288
virtual void decreaseMasterRatio(qreal delta=0.05)
Definition IPlacementEngine.h:620
virtual void loadState()=0
virtual void pruneStatesForDesktop(int removedDesktop)
Definition IPlacementEngine.h:534
virtual void pushToEmptyZone(const NavigationContext &ctx)=0
Move the focused window to the first empty slot.
virtual void markModeSpecificFloated(const QString &windowId)
Definition IPlacementEngine.h:591
virtual void decreaseMasterCount()
Definition IPlacementEngine.h:627
virtual int computeDragInsertIndexAtPoint(const QString &screenId, const QPoint &cursorPos) const
Compute the insert index for a cursor position on a managed screen.
Definition IPlacementEngine.h:451
virtual QSet< int > desktopsWithActiveState() const
Definition IPlacementEngine.h:530
virtual QStringList managedWindowOrder(const QString &screenId) const
Definition IPlacementEngine.h:228
virtual QVariantMap perScreenOverrides(const QString &screenId) const
Definition IPlacementEngine.h:252
virtual void pruneStatesForActivities(const QStringList &validActivities)
Definition IPlacementEngine.h:538
virtual std::optional< WindowPlacement > capturePlacement(const QString &windowId) const
Report windowId's CURRENT placement for persistence, or nullopt if this engine does not manage it.
Definition IPlacementEngine.h:198
Per-screen placement state contract.
Definition IPlacementState.h:26
Definition EngineTypes.h:13
Context for a cross-engine window handoff.
Definition IPlacementEngine.h:385
QString fromEngineId
source engine identity ("snap" / "autotile" / "")
Definition IPlacementEngine.h:387
QRect sourceGeometry
window's frame at handoff time (for size preservation)
Definition IPlacementEngine.h:395
QPoint dropPos
cursor position at drop, or invalid for non-drag handoffs
Definition IPlacementEngine.h:394
QString toScreenId
destination screen (must be owned by to engine)
Definition IPlacementEngine.h:388
QStringList sourceZoneIds
zones the window held at source (empty if not snapped)
Definition IPlacementEngine.h:396
QString windowId
Definition IPlacementEngine.h:386
Target window + screen for a navigation or lifecycle operation.
Definition NavigationContext.h:18
One window's single, authoritative placement record — the unit of the unified, engine-agnostic restor...
Definition WindowPlacement.h:66