Re: DGA and PointerMoved()
Thomas Winischhofer <[email protected]>
| Newsgroups | gmane.comp.xfree86.devel |
|---|---|
| Message-ID | <[email protected]> |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Marc Aurele La France wrote: | On Mon, 7 Mar 2005, Mark Vojkovich wrote: | |>> Is it intentional that pScrn->PointerMoved() is being called (by whom?) |>> when DGA is active? | | |>> I only receive the cursor's last coordinates here from the time before |>> DGA was activated. Any mouse movement while DGA is active has no |>> influence on the coordinates received here. | | |> There is no cursor in DGA mode. Clients can still get mouse |> events, but that's not the same thing. DGA mouse events reflect |> relative motion rather than absolute, and the bulk of the cursor |> paths need to be bypassed. That is, the cursor isn't anywhere, |> the mouse has been disconnected from the cursor and the relative |> mouse events are sent directly to the client. | | | Yes, but I don't think that answers Thomas's question. Erm, yes. I suspected that the cursor stuff is out of order during DGA usage. My concern was more in the line of why calls to pScrn->PointerMoved() are issued during DGA activity. That seems like a bug to me. (The generic xf86PointerMoved does not contain any checks for DGA activity.) I discovered this while enhancing MergedFB mode which has a very tricky driver-side PointerMoved() implementation requirement in order to pan the real display modes within current meta mode. As soon as I switch, say, vmware to full screen, I get constant coordinates in my PointerMoved() routine regardless of mouse movement (but synchronous to mouse movement, ie no random calls but calls clearly related to actual mouse movement). I have looked at the cursor code but it goes through many layers, so I wasn't able to locate the call yet. In xf86Input.c, a DGAStealMotionEvent is immediately followed by a "continue" statement, but that obvisouly doesn't keep the event in some way get through to the PointerMoved() function. I work around this now, by checking for DGA myself, but that should be fixed globally. Thmas - -- Thomas Winischhofer Vienna/Austria thomas AT winischhofer DOT net http://www.winischhofer.net/ twini AT xfree86 DOT org -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFCLN9azydIRAktyUcRApVwAKCOtfrCrUAckJe64KCmMmAwe4LoYwCgnzGr 0FqH7Vc/SHgnQnpMJHoR2XU= =TUWl -----END PGP SIGNATURE-----