diff options
| author | Vaxry <vaxry@vaxry.net> | 2023-10-30 19:36:34 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2023-10-30 19:36:45 +0000 |
| commit | ab5497a0c9e9269b1036a0bede42cbd0bbfd94b9 (patch) | |
| tree | 0424a0824795ce6acb62ebab7e9ba9596bd670df /src/Compositor.cpp | |
| parent | f48b3774a2cfa95105ea4cbe8f05f70a6357a628 (diff) | |
input: properly track xdg surfaces' geometry in vectorToSurfaceLocal
fixes #3703
Diffstat (limited to 'src/Compositor.cpp')
| -rw-r--r-- | src/Compositor.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
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) { |
