Proposal for XFixes changes to allow client side cursor hadling (Composite manager sofware rendered cursor)
Dennis Kasprzyk
onestone at opencompositing.org
Sat Feb 16 19:38:53 PST 2008
Hi,
David Reveman made a proposal a while ago (New version of xfixes with client
side cursor support), but there was a problem with the
XFixesNameCursorPixmap, because it could not ensure that the cursor
attributes match the named cursor pixmap (see the old post for details).
The situation has changed, and we now also could have multiple cursors due
to MPX. I assume here that we already have a system to get the available
cursors and it's positions. I will simply use CursorId as a way to identify
multiple cursors.
My idea is a new void XFixesRequestCursorPixmap (Display *dpy, CursorID,
Bool immediate) function.
This function will create a new pixmap id and will send it with the request
to the server. If immediate is set to TRUE, then the server will assign the
pixmap id to the current cursor pixmap and send an event with the pixmap id
and the current cursor attributes back to the client. If immediate is
FALSE, then the server will wait. If the cursor attributes/image changes,
then the server will assign the pixmap id to the new cursor and will send
it with the new attributes back to the client. This ensures that the client
always has the right attributes for it's cursor pixmap id.
Such a system could also replace the XCompositeNameWindowPixmap call, to
make sure that a composite manager also always has the right attributes of
a named window pixmap.
- Dennis
More information about the xorg
mailing list