Re: [PATCH qxl-wddm-dod] Send HIDE command when pointer is not visible

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm pretty sure Windows won't call SetPointerShape when it hides the hardware pointer, so you have to catch it in SetPointerPosition. But yes, you probably could send the HIDE command just once.

El dom, 20-11-2016 a las 16:18 +0200, Yuri Benditovich escribió:
Is this a best idea to send down HIDE command on each SetPointerPosition?
I'd like to check it - may be we can filter it better on SetPointerShape?


On Fri, Nov 18, 2016 at 7:07 PM, Frediano Ziglio <fziglio@xxxxxxxxxx> wrote:
From: Javier Celaya <javier.celaya@xxxxxxxxxxx>

This avoid having possibly 2 pointers (client and server) if Windows
decide to render the mouse by itself.
This happens for instance moving windows.

---
 qxldod/QxlDod.cpp | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

Javier, as we changed license since you create it could you please sign off
the patch?

I added some comments to this patch.

diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp
index 724e89f..8f31714 100755
--- a/qxldod/QxlDod.cpp
+++ b/qxldod/QxlDod.cpp
@@ -434,11 +434,6 @@ NTSTATUS QxlDod::SetPointerPosition(_In_ CONST DXGKARG_SETPOINTERPOSITION* pSetP
     QXL_ASSERT(pSetPointerPosition != NULL);
     QXL_ASSERT(pSetPointerPosition->VidPnSourceId < MAX_VIEWS);

-    if (!(pSetPointerPosition->Flags.Visible))
-    {
-        DbgPrint(TRACE_LEVEL_INFORMATION, ("<--- %s Cursor is not visible\n", __FUNCTION__));
-        return STATUS_SUCCESS;
-    }
     return m_pHWDevice->SetPointerPosition(pSetPointerPosition);
 }

@@ -4507,7 +4502,7 @@ NTSTATUS QxlDevice::SetPointerPosition(_In_ CONST DXGKARG_SETPOINTERPOSITION* pS
                                  pSetPointerPosition->X,
                                  pSetPointerPosition->Y));
     QXLCursorCmd *cursor_cmd = CursorCmd();
-    if (pSetPointerPosition->X < 0) {
+    if (pSetPointerPosition->X < 0 || !pSetPointerPosition->Flags.Visible) {
         cursor_cmd->type = QXL_CURSOR_HIDE;
     } else {
         cursor_cmd->type = QXL_CURSOR_MOVE;
--
2.7.4

_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel



_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]