summaryrefslogtreecommitdiff
path: root/src/managers/PointerManager.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2025-01-26 14:25:49 +0000
committerVaxry <vaxry@vaxry.net>2025-01-26 14:25:54 +0000
commit74d0f34cf396f4fc41ee98b000e7d0a4e277c066 (patch)
tree462720ec13083af3e7fcd0d7c1fd12f5725bdea5 /src/managers/PointerManager.cpp
parent4abf9155ee67ee09116948b1d9efef58c08697d9 (diff)
pointer: always scale the cpu cursor to the right size
fixes #9003
Diffstat (limited to 'src/managers/PointerManager.cpp')
-rw-r--r--src/managers/PointerManager.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/managers/PointerManager.cpp b/src/managers/PointerManager.cpp
index df145f6d..5fdfa553 100644
--- a/src/managers/PointerManager.cpp
+++ b/src/managers/PointerManager.cpp
@@ -507,6 +507,10 @@ SP<Aquamarine::IBuffer> CPointerManager::renderHWCursorBuffer(SP<CPointerManager
const auto TR = state->monitor->transform;
+ // we need to scale the cursor to the right size, because it might not be (esp with XCursor)
+ const auto SCALE = texture->m_vSize / (currentCursorImage.size / currentCursorImage.scale * state->monitor->scale);
+ cairo_matrix_scale(&matrixPre, SCALE.x, SCALE.y);
+
if (TR) {
cairo_matrix_rotate(&matrixPre, M_PI_2 * (double)TR);