layout: Allow the layout to control how windows are raised in groups (#3275)

* Allow the layout to control how windows are raised in groups

Previously windows could only be focused if they weren't hidden or
were part of a group. This shifts the logic for picking the window out
of a group to the layout allowing for alternate group implementations
to function normally.

* Fix doc comment consistency

* Fix tabs in comments
This commit is contained in:
outfoxxed
2023-09-12 14:37:08 -07:00
committed by GitHub
parent be19773aaa
commit b0d5e4008b
3 changed files with 26 additions and 7 deletions

View File

@@ -535,12 +535,22 @@ CWindow* IHyprLayout::getNextWindowCandidate(CWindow* pWindow) {
return PWINDOWCANDIDATE;
}
void IHyprLayout::requestFocusForWindow(CWindow* pWindow) {
bool IHyprLayout::isWindowReachable(CWindow* pWindow) {
return pWindow && (!pWindow->isHidden() || pWindow->m_sGroupData.pNextWindow);
}
void IHyprLayout::bringWindowToTop(CWindow* pWindow) {
if (pWindow == nullptr)
return;
if (pWindow->isHidden() && pWindow->m_sGroupData.pNextWindow) {
// grouped, change the current to this window
pWindow->setGroupCurrent(pWindow);
}
}
void IHyprLayout::requestFocusForWindow(CWindow* pWindow) {
bringWindowToTop(pWindow);
g_pCompositor->focusWindow(pWindow);
}