Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
PhosphorEngine::LayerSwitchSide Struct Reference

One side (tiled or floating) of a layer focus switch, as the owning engine sees it. More...

#include <phosphor-engine/include/PhosphorEngine/LayerFocusSwitch.h>

Public Attributes

QString candidate
 Preferred target on this side: the side's remembered last focus, or, for an engine whose live selection IS the side, its current active window (the scroll strip's tiled side).
 
QStringList fallbacks
 Ordered fallback pool scanned when the candidate is not eligible.
 
std::function< bool(const QString &)> isEligible
 Eligibility filter applied to the candidate and every fallback.
 
QString focusForFeedback
 The window reported as the feedback SOURCE when this side holds focus (i.e.
 

Detailed Description

One side (tiled or floating) of a layer focus switch, as the owning engine sees it.

The resolver never touches engine state — the engine snapshots what it knows into this struct and interprets the result.

Member Data Documentation

◆ candidate

QString PhosphorEngine::LayerSwitchSide::candidate

Preferred target on this side: the side's remembered last focus, or, for an engine whose live selection IS the side, its current active window (the scroll strip's tiled side).

May be empty or stale — an ineligible candidate falls through to the scan.

◆ fallbacks

QStringList PhosphorEngine::LayerSwitchSide::fallbacks

Ordered fallback pool scanned when the candidate is not eligible.

May be empty for engines whose candidate is authoritative (the scroll strip's active window IS the tiled side, no scan exists).

◆ focusForFeedback

QString PhosphorEngine::LayerSwitchSide::focusForFeedback

The window reported as the feedback SOURCE when this side holds focus (i.e.

when the switch departs from this side). Passed through UNVALIDATED — no eligibility filter runs on it — so supply the live focus, or a memory the engine keeps in lockstep with it (the scroll engine's lastFloatingFocus, written on every floating focus report). The resolver only ever reads the source side's value, so callers that know the live focus can assign the same value to both sides.

◆ isEligible

std::function<bool(const QString&)> PhosphorEngine::LayerSwitchSide::isEligible

Eligibility filter applied to the candidate and every fallback.

Null means always eligible. Typical filter: "still on this side and not minimized" — the daemon models minimize as a float, so a remembered focus can name a hidden window that must not be "activated" with success reported.


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