diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2026-05-07 15:21:06 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-07 15:21:06 +0100 |
| commit | 58833eb1d79d7f03402cee0730c309b79f2e4501 (patch) | |
| tree | 180cadc5d2e6fcb9e2f090eeccc6fb4ccace9b51 /src/layout/algorithm/ModeAlgorithm.hpp | |
| parent | 6b8b20100253c083227e611be20360f4d8e7794e (diff) | |
layout/scrolling: handle fullscreen manually (#14190)
Makes scroll handle fullscreen by itself, allowing for fs scrolls.
Diffstat (limited to 'src/layout/algorithm/ModeAlgorithm.hpp')
| -rw-r--r-- | src/layout/algorithm/ModeAlgorithm.hpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/layout/algorithm/ModeAlgorithm.hpp b/src/layout/algorithm/ModeAlgorithm.hpp index e53d4391..1348a6f4 100644 --- a/src/layout/algorithm/ModeAlgorithm.hpp +++ b/src/layout/algorithm/ModeAlgorithm.hpp @@ -13,6 +13,12 @@ namespace Layout { class ITarget; class CAlgorithm; + struct SFullscreenRequest { + SP<ITarget> target; + eFullscreenMode currentEffectiveMode = static_cast<eFullscreenMode>(0); + eFullscreenMode effectiveMode = static_cast<eFullscreenMode>(0); + }; + class IModeAlgorithm { public: virtual ~IModeAlgorithm() = default; @@ -44,6 +50,13 @@ namespace Layout { // optional: predict new window's size virtual std::optional<Vector2D> predictSizeForNewTarget(); + // optional: allow algorithms to own fullscreen semantics for a target. + virtual eFullscreenRequestResult requestFullscreen(const SFullscreenRequest& request); + + // optional: expose an algorithm-owned fullscreen target and whether it is monitor-exclusive. + virtual SP<ITarget> layoutFullscreenTarget() const; + virtual bool layoutFullscreenCoversMonitor() const; + // Impl'd here: focal point for dir virtual std::optional<Vector2D> focalPointForDir(SP<ITarget> t, Math::eDirection dir); |
