dwindle: ignore fullscreen window for positioning when use_active_for_splits=false (#9838)
* fix(dwindle): ignore fullscreen window for positioning when use_active_for_splits=false * rename NON_FULLSCREEN -> SKIP_FULLSCREEN_PRIORITY
This commit is contained in:
parent
2da4f427ea
commit
4d85e7996d
3 changed files with 10 additions and 9 deletions
|
|
@ -952,7 +952,7 @@ PHLWINDOW CCompositor::vectorToWindowUnified(const Vector2D& pos, uint8_t proper
|
||||||
const WORKSPACEID WSPID = special ? PMONITOR->activeSpecialWorkspaceID() : PMONITOR->activeWorkspaceID();
|
const WORKSPACEID WSPID = special ? PMONITOR->activeSpecialWorkspaceID() : PMONITOR->activeWorkspaceID();
|
||||||
const auto PWORKSPACE = getWorkspaceByID(WSPID);
|
const auto PWORKSPACE = getWorkspaceByID(WSPID);
|
||||||
|
|
||||||
if (PWORKSPACE->m_bHasFullscreenWindow)
|
if (PWORKSPACE->m_bHasFullscreenWindow && !(properties & SKIP_FULLSCREEN_PRIORITY))
|
||||||
return PWORKSPACE->getFullscreenWindow();
|
return PWORKSPACE->getFullscreenWindow();
|
||||||
|
|
||||||
auto found = floating(false);
|
auto found = floating(false);
|
||||||
|
|
|
||||||
|
|
@ -44,13 +44,14 @@ enum eGroupRules : uint8_t {
|
||||||
};
|
};
|
||||||
|
|
||||||
enum eGetWindowProperties : uint8_t {
|
enum eGetWindowProperties : uint8_t {
|
||||||
WINDOW_ONLY = 0,
|
WINDOW_ONLY = 0,
|
||||||
RESERVED_EXTENTS = 1 << 0,
|
RESERVED_EXTENTS = 1 << 0,
|
||||||
INPUT_EXTENTS = 1 << 1,
|
INPUT_EXTENTS = 1 << 1,
|
||||||
FULL_EXTENTS = 1 << 2,
|
FULL_EXTENTS = 1 << 2,
|
||||||
FLOATING_ONLY = 1 << 3,
|
FLOATING_ONLY = 1 << 3,
|
||||||
ALLOW_FLOATING = 1 << 4,
|
ALLOW_FLOATING = 1 << 4,
|
||||||
USE_PROP_TILED = 1 << 5,
|
USE_PROP_TILED = 1 << 5,
|
||||||
|
SKIP_FULLSCREEN_PRIORITY = 1 << 6,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum eSuppressEvents : uint8_t {
|
enum eSuppressEvents : uint8_t {
|
||||||
|
|
|
||||||
|
|
@ -246,7 +246,7 @@ void CHyprDwindleLayout::onWindowCreatedTiling(PHLWINDOW pWindow, eDirection dir
|
||||||
|
|
||||||
if (PMONITOR->ID == MONFROMCURSOR->ID &&
|
if (PMONITOR->ID == MONFROMCURSOR->ID &&
|
||||||
(PNODE->workspaceID == PMONITOR->activeWorkspaceID() || (g_pCompositor->isWorkspaceSpecial(PNODE->workspaceID) && PMONITOR->activeSpecialWorkspace)) && !*PUSEACTIVE) {
|
(PNODE->workspaceID == PMONITOR->activeWorkspaceID() || (g_pCompositor->isWorkspaceSpecial(PNODE->workspaceID) && PMONITOR->activeSpecialWorkspace)) && !*PUSEACTIVE) {
|
||||||
OPENINGON = getNodeFromWindow(g_pCompositor->vectorToWindowUnified(MOUSECOORDS, RESERVED_EXTENTS | INPUT_EXTENTS));
|
OPENINGON = getNodeFromWindow(g_pCompositor->vectorToWindowUnified(MOUSECOORDS, RESERVED_EXTENTS | INPUT_EXTENTS | SKIP_FULLSCREEN_PRIORITY));
|
||||||
|
|
||||||
if (!OPENINGON && g_pCompositor->isPointOnReservedArea(MOUSECOORDS, PMONITOR))
|
if (!OPENINGON && g_pCompositor->isPointOnReservedArea(MOUSECOORDS, PMONITOR))
|
||||||
OPENINGON = getClosestNodeOnWorkspace(PNODE->workspaceID, MOUSECOORDS);
|
OPENINGON = getClosestNodeOnWorkspace(PNODE->workspaceID, MOUSECOORDS);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue