Proposal for Version 0.4 of Xfixes Extension

Deron Johnson Deron.Johnson at Sun.COM
Mon Jan 23 14:30:33 PST 2006



Keith Packard wrote On 01/19/06 18:44,:

> I think the grab stuff needs clarification, in particular, I'm assuming
> you intend for grabs within the entire hierarchy to cause an event to be
> delivered, not just for the particular window. That means a request on
> the root window would report any grab activating within the entire
> screen.
> 
> What about grabs on other screens? Do you hear about them too?
> 
> And, I was thinking that the HideCursor/ShowCursor stuff should be
> hierarchical as well; pass a window and have that cause the cursor to
> not be displayed within that window (or sub windows). With this, we
> again have the question about grabs, and I suggest that probably grabs
> within the hierarchy would respect the hide value while grabs outside
> would ignore it. I don't think this is terribly hard to implement; it's
> just a check up the tree for hide values each time the cursor enters
> another window or the pointer is grabbed.
> 
> Also left undefined is the behaviour when multiple clients make this
> request. I suggest that the effect should be cumulative. 
> 
> Also, the effect of any calls to HideCursor should be voided when the
> resources for the client are destroyed (which tracks client closure,
> except when resources are retained).
> 

Here is my attempt to update the HideCursor/ShowCursor section to
include your suggestions. Please review.

Add: Cursor Visibility Modification
-----------------------------------

Requests:

HideCursor
	window:			Window

        A client sends this request to indicate that it wants the
        cursor image to be hidden (i.e. to not be displayed) when
	the sprite is inside the specified window, or one of its
	subwindows. If the sprite is inside a window for which one
        or more active clients have requested cursor hiding then the
        cursor image will not be displayed.

	Note that even though cursor hiding causes the cursor image
	to be invisible, CursorNotify events will still be sent
        normally, as if the cursor image were visible.

	If, during a grab, one or more active clients have requested
        cursor hiding for grab window, or one of its ancestors, the
        cursor image of the grab cursor will not be displayed during
        the lifetime of that grab.

	When a client with outstanding cursor hiding requests
        terminates its connection these requests will be deleted.

ShowCursor
	window:			Window

        A client sends this request to indicate that it wants the
        cursor image to be displayed when the sprite is inside the
        specified window, or one of its subwindows. If the sprite
        is inside a window for which no active clients have requested
        cursor hiding then the cursor image for that window will be
        displayed. In other words, if a client calls HideCursor for
        a specified window, or window subtree, this request reverses
        the effects of the HideCursor request.



More information about the xorg-arch mailing list