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