diff options
| author | Vaxry <vaxry@vaxry.net> | 2023-11-04 21:03:08 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2023-11-04 21:03:08 +0000 |
| commit | 74cf2281dd38a533916eb0b201c3128423b94d7c (patch) | |
| tree | 160b8b45ba3d030ca4f0c7835c94bdc864502905 /src/Compositor.cpp | |
| parent | 2b07d54bc74f34a3561612bedaa44ad8ab550b8b (diff) | |
binds: add movefocus_cycles_fullscreen
fixes #3738
Diffstat (limited to 'src/Compositor.cpp')
| -rw-r--r-- | src/Compositor.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 53cd2e83..74ac7c11 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -1504,13 +1504,19 @@ CWindow* CCompositor::getWindowInDirection(CWindow* pWindow, char dir) { // 0 -> history, 1 -> shared length static auto* const PMETHOD = &g_pConfigManager->getConfigValuePtr("binds:focus_preferred_method")->intValue; - const auto WINDOWIDEALBB = pWindow->getWindowIdealBoundingBoxIgnoreReserved(); + const auto PMONITOR = g_pCompositor->getMonitorFromID(pWindow->m_iMonitorID); - const auto POSA = Vector2D(WINDOWIDEALBB.x, WINDOWIDEALBB.y); - const auto SIZEA = Vector2D(WINDOWIDEALBB.width, WINDOWIDEALBB.height); + if (!PMONITOR) + return nullptr; // ?? - auto leaderValue = -1; - CWindow* leaderWindow = nullptr; + const auto WINDOWIDEALBB = pWindow->m_bIsFullscreen ? wlr_box{(int)PMONITOR->vecPosition.x, (int)PMONITOR->vecPosition.y, (int)PMONITOR->vecSize.x, (int)PMONITOR->vecSize.y} : + pWindow->getWindowIdealBoundingBoxIgnoreReserved(); + + const auto POSA = Vector2D(WINDOWIDEALBB.x, WINDOWIDEALBB.y); + const auto SIZEA = Vector2D(WINDOWIDEALBB.width, WINDOWIDEALBB.height); + + auto leaderValue = -1; + CWindow* leaderWindow = nullptr; for (auto& w : m_vWindows) { if (w.get() == pWindow || !w->m_bIsMapped || w->isHidden() || w->m_bIsFloating || !isWorkspaceVisible(w->m_iWorkspaceID)) |
