From 58833eb1d79d7f03402cee0730c309b79f2e4501 Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Thu, 7 May 2026 15:21:06 +0100 Subject: layout/scrolling: handle fullscreen manually (#14190) Makes scroll handle fullscreen by itself, allowing for fs scrolls. --- src/layout/algorithm/Algorithm.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/layout/algorithm/Algorithm.cpp') diff --git a/src/layout/algorithm/Algorithm.cpp b/src/layout/algorithm/Algorithm.cpp index b22eb9bf..ae96a7d8 100644 --- a/src/layout/algorithm/Algorithm.cpp +++ b/src/layout/algorithm/Algorithm.cpp @@ -154,6 +154,25 @@ void CAlgorithm::moveTarget(const Vector2D& Δ, SP target) { m_floating->moveTarget(Δ, target); } +eFullscreenRequestResult CAlgorithm::requestFullscreen(SP target, eFullscreenMode currentEffectiveMode, eFullscreenMode effectiveMode) { + if (!target) + return FULLSCREEN_REQUEST_DEFAULT; + + const SFullscreenRequest request = {.target = target, .currentEffectiveMode = currentEffectiveMode, .effectiveMode = effectiveMode}; + return target->floating() ? m_floating->requestFullscreen(request) : m_tiled->requestFullscreen(request); +} + +SP CAlgorithm::layoutFullscreenTarget() const { + if (const auto TARGET = m_tiled->layoutFullscreenTarget(); TARGET) + return TARGET; + + return m_floating->layoutFullscreenTarget(); +} + +bool CAlgorithm::layoutFullscreenCoversMonitor() const { + return m_tiled->layoutFullscreenCoversMonitor() || m_floating->layoutFullscreenCoversMonitor(); +} + void CAlgorithm::swapTargets(SP a, SP b) { auto swapFirst = [&a, &b](std::vector>& targets) -> bool { auto ia = std::ranges::find(targets, a); -- cgit v1.2.3