From 3a9bb8567cd3e18c121f0a1a7679fc0631e831b2 Mon Sep 17 00:00:00 2001 From: Eriq Taing Date: Tue, 9 Dec 2025 15:01:37 -0500 Subject: [PATCH] Add rest of locations where dynamicPointerCast is used to patch --- hyprland-git/dynamicPointerCast.patch | 143 ++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) diff --git a/hyprland-git/dynamicPointerCast.patch b/hyprland-git/dynamicPointerCast.patch index 9f33374..01bad9b 100644 --- a/hyprland-git/dynamicPointerCast.patch +++ b/hyprland-git/dynamicPointerCast.patch @@ -19,3 +19,146 @@ index 0d9c2f8..3bcaace 100644 } PHLWINDOW CCompositor::getWindowFromHandle(uint32_t handle) { +diff --git a/src/desktop/view/LayerSurface.cpp b/src/desktop/view/LayerSurface.cpp +index 3192321..e71163b 100644 +--- a/src/desktop/view/LayerSurface.cpp ++++ b/src/desktop/view/LayerSurface.cpp +@@ -12,6 +12,7 @@ + #include "../../managers/input/InputManager.hpp" + #include "../../managers/HookSystemManager.hpp" + #include "../../managers/EventManager.hpp" ++#include + + using namespace Desktop; + using namespace Desktop::View; +diff --git a/src/desktop/view/Popup.cpp b/src/desktop/view/Popup.cpp +index 31ea125..07e6b67 100644 +--- a/src/desktop/view/Popup.cpp ++++ b/src/desktop/view/Popup.cpp +@@ -12,6 +12,7 @@ + #include "../../render/Renderer.hpp" + #include "../../render/OpenGL.hpp" + #include ++#include + + using namespace Desktop; + using namespace Desktop::View; +diff --git a/src/desktop/view/SessionLock.cpp b/src/desktop/view/SessionLock.cpp +index a4a5b78..b3747b0 100644 +--- a/src/desktop/view/SessionLock.cpp ++++ b/src/desktop/view/SessionLock.cpp +@@ -6,6 +6,8 @@ + + #include "../../Compositor.hpp" + ++#include ++ + using namespace Desktop; + using namespace Desktop::View; + +@@ -36,7 +38,7 @@ void View::CSessionLock::init() { + SP View::CSessionLock::fromView(SP v) { + if (!v || v->type() != VIEW_TYPE_LOCK_SCREEN) + return nullptr; +- return dynamicPointerCast(v); ++ return std::dynamicPointerCast(v); + } + + eViewType View::CSessionLock::type() const { +diff --git a/src/desktop/view/Subsurface.cpp b/src/desktop/view/Subsurface.cpp +index 2c39a08..2a90717 100644 +--- a/src/desktop/view/Subsurface.cpp ++++ b/src/desktop/view/Subsurface.cpp +@@ -6,6 +6,7 @@ + #include "../../protocols/core/Subcompositor.hpp" + #include "../../render/Renderer.hpp" + #include "../../managers/input/InputManager.hpp" ++#include + + using namespace Desktop; + using namespace Desktop::View; +diff --git a/src/desktop/view/WLSurface.cpp b/src/desktop/view/WLSurface.cpp +index 1bf90ae..c6bd048 100644 +--- a/src/desktop/view/WLSurface.cpp ++++ b/src/desktop/view/WLSurface.cpp +@@ -4,6 +4,7 @@ + #include "../../protocols/core/Compositor.hpp" + #include "../../protocols/LayerShell.hpp" + #include "../../render/Renderer.hpp" ++#include + + using namespace Desktop; + using namespace Desktop::View; +@@ -44,7 +45,7 @@ bool CWLSurface::small() const { + if (!m_resource->m_current.texture) + return false; + +- const auto O = dynamicPointerCast(m_view.lock()); ++ const auto O = std::dynamicPointerCast(m_view.lock()); + const auto REPORTED_SIZE = O->getReportedSize(); + + return REPORTED_SIZE.x > m_resource->m_current.size.x + 1 || REPORTED_SIZE.y > m_resource->m_current.size.y + 1; +@@ -55,7 +56,7 @@ Vector2D CWLSurface::correctSmallVec() const { + return {}; + + const auto SIZE = getViewporterCorrectedSize(); +- const auto O = dynamicPointerCast(m_view.lock()); ++ const auto O = std::dynamicPointerCast(m_view.lock()); + const auto REP = O->getReportedSize(); + + return Vector2D{(REP.x - SIZE.x) / 2, (REP.y - SIZE.y) / 2}.clamp({}, {INFINITY, INFINITY}) * (O->m_realSize->value() / REP); +@@ -106,7 +107,7 @@ CRegion CWLSurface::computeDamage() const { + damage.scale(SCALE); + if (BOX.has_value()) { + if (m_view->type() == VIEW_TYPE_WINDOW) +- damage.intersect(CBox{{}, BOX->size() * dynamicPointerCast(m_view.lock())->m_X11SurfaceScaledBy}); ++ damage.intersect(CBox{{}, BOX->size() * std::dynamicPointerCast(m_view.lock())->m_X11SurfaceScaledBy}); + else + damage.intersect(CBox{{}, BOX->size()}); + } +diff --git a/src/desktop/view/Window.cpp b/src/desktop/view/Window.cpp +index e27129a..e50019e 100644 +--- a/src/desktop/view/Window.cpp ++++ b/src/desktop/view/Window.cpp +@@ -43,6 +43,7 @@ + #include "../../managers/animation/DesktopAnimationManager.hpp" + + #include ++#include + + using namespace Hyprutils::String; + using namespace Hyprutils::Animation; +diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp +index 98662d1..e24046a 100644 +--- a/src/managers/input/InputManager.cpp ++++ b/src/managers/input/InputManager.cpp +@@ -48,6 +48,7 @@ + #include "../cursor/CursorShapeOverrideController.hpp" + + #include ++#include + + CInputManager::CInputManager() { + m_listeners.setCursorShape = PROTO::cursorShape->m_events.setShape.listen([this](const CCursorShapeProtocol::SSetShapeEvent& event) { +@@ -337,10 +338,10 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus, bool mouse, st + const auto BOX = HLSurface->getSurfaceBoxGlobal(); + + if (BOX) { +- const auto PWINDOW = HLSurface->view()->type() == Desktop::View::VIEW_TYPE_WINDOW ? dynamicPointerCast(HLSurface->view()) : nullptr; ++ const auto PWINDOW = HLSurface->view()->type() == Desktop::View::VIEW_TYPE_WINDOW ? std::dynamicPointerCast(HLSurface->view()) : nullptr; + surfacePos = BOX->pos(); + pFoundLayerSurface = +- HLSurface->view()->type() == Desktop::View::VIEW_TYPE_LAYER_SURFACE ? dynamicPointerCast(HLSurface->view()) : nullptr; ++ HLSurface->view()->type() == Desktop::View::VIEW_TYPE_LAYER_SURFACE ? std::dynamicPointerCast(HLSurface->view()) : nullptr; + if (!pFoundLayerSurface) + pFoundWindow = !PWINDOW || PWINDOW->isHidden() ? Desktop::focusState()->window() : PWINDOW; + } else // reset foundSurface, find one normally +@@ -786,7 +787,7 @@ void CInputManager::processMouseDownNormal(const IPointer::SButtonEvent& e) { + auto HLSurf = Desktop::View::CWLSurface::fromResource(g_pSeatManager->m_state.pointerFocus.lock()); + + if (HLSurf && HLSurf->view()->type() == Desktop::View::VIEW_TYPE_WINDOW) +- g_pCompositor->changeWindowZOrder(dynamicPointerCast(HLSurf->view()), true); ++ g_pCompositor->changeWindowZOrder(std::dynamicPointerCast(HLSurf->view()), true); + + break; + }