ack ----- Original Message ----- > From: "Yuri Benditovich" <yuri.benditovich@xxxxxxxxxx> > To: spice-devel@xxxxxxxxxxxxxxxxxxxxx > Cc: yan@xxxxxxxxxx > Sent: Thursday, February 27, 2020 11:02:55 AM > Subject: [PATCH qxl-wddm-dod 3/3] Remap the pointer in case of rotated screen > > https://bugzilla.redhat.com/show_bug.cgi?id=1791804 > The remapping will work only when the driver controls > the placement of drawn pointer, i.e. when the input > device in VM is usb-mouse and the Spice Agent is not > active. > > Signed-off-by: Yuri Benditovich <yuri.benditovich@xxxxxxxxxx> > --- > qxldod/QxlDod.cpp | 26 +++++++++++++++++++++++++- > 1 file changed, 25 insertions(+), 1 deletion(-) > > diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp > index 6e97360..7f03ee1 100755 > --- a/qxldod/QxlDod.cpp > +++ b/qxldod/QxlDod.cpp > @@ -557,7 +557,31 @@ NTSTATUS QxlDod::SetPointerPosition(_In_ CONST > DXGKARG_SETPOINTERPOSITION* pSetP > > QXL_ASSERT(pSetPointerPosition != NULL); > QXL_ASSERT(pSetPointerPosition->VidPnSourceId < MAX_VIEWS); > - > + DXGKARG_SETPOINTERPOSITION adjusted; > + if (m_CurrentModes[pSetPointerPosition->VidPnSourceId].Rotation == > D3DKMDT_VPPR_ROTATE90) > + { > + adjusted = *pSetPointerPosition; > + adjusted.Y = > m_CurrentModes[pSetPointerPosition->VidPnSourceId].SrcModeHeight - > pSetPointerPosition->X; > + adjusted.X = pSetPointerPosition->Y; > + DbgPrint(TRACE_LEVEL_INFORMATION, ("%s: src %d,%d -> %d,%d\n", > __FUNCTION__, > + pSetPointerPosition->X, pSetPointerPosition->Y, > + adjusted.X, adjusted.Y)); > + pSetPointerPosition = &adjusted; > + } > + else if (m_CurrentModes[pSetPointerPosition->VidPnSourceId].Rotation == > D3DKMDT_VPPR_ROTATE180) > + { > + adjusted = *pSetPointerPosition; > + adjusted.Y = > m_CurrentModes[pSetPointerPosition->VidPnSourceId].SrcModeHeight - > pSetPointerPosition->Y; > + adjusted.X = > m_CurrentModes[pSetPointerPosition->VidPnSourceId].SrcModeWidth - > pSetPointerPosition->X; > + pSetPointerPosition = &adjusted; > + } > + else if (m_CurrentModes[pSetPointerPosition->VidPnSourceId].Rotation == > D3DKMDT_VPPR_ROTATE270) > + { > + adjusted = *pSetPointerPosition; > + adjusted.Y = pSetPointerPosition->X; > + adjusted.X = > m_CurrentModes[pSetPointerPosition->VidPnSourceId].SrcModeWidth - > pSetPointerPosition->Y; > + pSetPointerPosition = &adjusted; > + } > return m_pHWDevice->SetPointerPosition(pSetPointerPosition); > } > > -- > 2.17.1 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/spice-devel > > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel