Explorar el Código

minor improvements to pointer handling

vaxerski hace 3 años
padre
commit
997f780f4c

+ 8 - 1
src/WallpaperEngine/Input/CWaylandMouseInput.cpp

@@ -16,5 +16,12 @@ glm::dvec2 CWaylandMouseInput::position() const {
     if (!waylandDriver || !waylandDriver->lastLSInFocus)
         return {0, 0};
 
-    return waylandDriver->lastLSInFocus->mousePos;
+    for (auto& o : waylandDriver->m_outputs) {
+        if (!o->rendering)
+            continue;
+        
+        return o->layerSurface.get() == waylandDriver->lastLSInFocus ? o->layerSurface->mousePos : glm::dvec2{-1337, -1337};
+    }
+
+    return {0, 0};
 }

+ 1 - 1
src/WallpaperEngine/Render/Drivers/CWaylandOpenGLDriver.cpp

@@ -46,7 +46,7 @@ static void handlePointerMotion(void* data, struct wl_pointer* wl_pointer, uint3
     if (!PDRIVER->lastLSInFocus)
         return;
 
-    PDRIVER->lastLSInFocus->mousePos = {x, y};
+    PDRIVER->lastLSInFocus->mousePos = {x * PDRIVER->lastLSInFocus->output->scale, y * PDRIVER->lastLSInFocus->output->scale};
 }
 
 static void handlePointerButton(void* data, struct wl_pointer* wl_pointer, uint32_t serial, uint32_t time, uint32_t button, uint32_t button_state) {