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

@@ -155,10 +155,22 @@ class IHyprLayout {
*/
virtual void replaceWindowDataWith(CWindow* from, CWindow* to) = 0;
/*
Determines if a window can be focused. If hidden this usually means the window is part of a group.
*/
virtual bool isWindowReachable(CWindow*);
/*
Called before an attempt is made to focus a window.
Brings the window to the top of any groups and ensures it is not hidden.
If the window is unmapped following this call, the focus attempt will fail.
*/
virtual void bringWindowToTop(CWindow*);
/*
Called via the foreign toplevel activation protocol.
Focuses a window, bringing it to the top of its group if applicable.
May be ignored.
May be ignored.
*/
virtual void requestFocusForWindow(CWindow*);