From ab5497a0c9e9269b1036a0bede42cbd0bbfd94b9 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Mon, 30 Oct 2023 19:36:34 +0000 Subject: [PATCH] input: properly track xdg surfaces' geometry in vectorToSurfaceLocal fixes #3703 --- src/Compositor.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 9b36b338..f1ac7b2b 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -865,10 +865,13 @@ Vector2D CCompositor::vectorToSurfaceLocal(const Vector2D& vec, CWindow* pWindow }, &iterData); + wlr_box geom = {0}; + wlr_xdg_surface_get_geometry(PSURFACE, &geom); + if (std::get<1>(iterData) == -1337 && std::get<2>(iterData) == -1337) return vec - pWindow->m_vRealPosition.goalv(); - return vec - pWindow->m_vRealPosition.goalv() - Vector2D{std::get<1>(iterData), std::get<2>(iterData)}; + return vec - pWindow->m_vRealPosition.goalv() - Vector2D{std::get<1>(iterData), std::get<2>(iterData)} + Vector2D{geom.x, geom.y}; } CMonitor* CCompositor::getMonitorFromOutput(wlr_output* out) {