diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-06-22 15:45:56 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-06-22 15:45:56 +0200 |
| commit | 770bada5d541e737ae17744f70eb019494471a29 (patch) | |
| tree | 9be90ba75ffed8b22cbe98d4db3468b93ff813df /src/Compositor.cpp | |
| parent | 499d2e41bfbc76525c3f03e1fb0a057b910c0c4b (diff) | |
Fixed oversized apps' incorrect layout
Diffstat (limited to 'src/Compositor.cpp')
| -rw-r--r-- | src/Compositor.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 32ffab34..a5339948 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -443,7 +443,11 @@ wlr_surface* CCompositor::vectorWindowToSurface(const Vector2D& pos, CWindow* pW double subx, suby; - const auto PFOUND = wlr_xdg_surface_surface_at(PSURFACE, pos.x - pWindow->m_vRealPosition.vec().x, pos.y - pWindow->m_vRealPosition.vec().y, &subx, &suby); + // calc for oversized windows... fucking bullshit, again. + wlr_box geom; + wlr_xdg_surface_get_geometry(pWindow->m_uSurface.xdg, &geom); + + const auto PFOUND = wlr_xdg_surface_surface_at(PSURFACE, pos.x - pWindow->m_vRealPosition.vec().x + geom.x, pos.y - pWindow->m_vRealPosition.vec().y + geom.y, &subx, &suby); if (PFOUND) { sl.x = subx; @@ -454,6 +458,9 @@ wlr_surface* CCompositor::vectorWindowToSurface(const Vector2D& pos, CWindow* pW sl.x = pos.x - pWindow->m_vRealPosition.vec().x; sl.y = pos.y - pWindow->m_vRealPosition.vec().y; + sl.x += geom.x; + sl.y += geom.y; + return PSURFACE->surface; } |
