diff --git a/src/Window.hpp b/src/Window.hpp index 59ef1857..a7c6657c 100644 --- a/src/Window.hpp +++ b/src/Window.hpp @@ -39,6 +39,7 @@ struct SWindowAdditionalConfigData { bool forceNoBorder = false; bool forceNoShadow = false; bool windowDanceCompat = false; + bool noMaxSize = false; }; struct SWindowRule { diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 78374d2b..e668a98a 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -749,6 +749,7 @@ bool windowRuleValid(const std::string& RULE) { && RULE != "forceinput" && RULE != "fullscreen" && RULE != "nofullscreenrequest" + && RULE != "nomaxsize" && RULE != "pin" && RULE != "noanim" && RULE != "windowdance" diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index 85115139..0c264f9b 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -170,6 +170,8 @@ void Events::listener_mapWindow(void* owner, void* data) { requestsFullscreen = true; } else if (r.szRule == "windowdance") { PWINDOW->m_sAdditionalConfigData.windowDanceCompat = true; + } else if (r.szRule == "nomaxsize") { + PWINDOW->m_sAdditionalConfigData.noMaxSize = true; } else if (r.szRule == "forceinput") { PWINDOW->m_sAdditionalConfigData.forceAllowsInput = true; } else if (r.szRule == "pin") { diff --git a/src/managers/XWaylandManager.cpp b/src/managers/XWaylandManager.cpp index 3f6c2371..e41d2e82 100644 --- a/src/managers/XWaylandManager.cpp +++ b/src/managers/XWaylandManager.cpp @@ -263,7 +263,7 @@ Vector2D CHyprXWaylandManager::getMaxSizeForWindow(CWindow* pWindow) { if (!g_pCompositor->windowValidMapped(pWindow)) return Vector2D(99999, 99999); - if ((pWindow->m_bIsX11 && !pWindow->m_uSurface.xwayland->size_hints) || (!pWindow->m_bIsX11 && !pWindow->m_uSurface.xdg->toplevel)) + if ((pWindow->m_bIsX11 && !pWindow->m_uSurface.xwayland->size_hints) || (!pWindow->m_bIsX11 && !pWindow->m_uSurface.xdg->toplevel) || pWindow->m_sAdditionalConfigData.noMaxSize) return Vector2D(99999, 99999); auto MAXSIZE = pWindow->m_bIsX11 ? Vector2D(pWindow->m_uSurface.xwayland->size_hints->max_width, pWindow->m_uSurface.xwayland->size_hints->max_height)