Re: What is the purpose of _NET_WM_USER_TIME?



2009/2/25 Joseph Krahn <joseph krahn gmail com>
>
> Overall, the current USER_TIME method is not really problematic.
> However, a Window Manager specification defines methods to interact
> with the Window Manager, and it seems a bit inappropriate to require
> clients to actively maintain data for the WM. I just think there
> should be a better design for the long term. Part of the problem is
> that X11 was designed around the idea that the WM manages windows, and
> doesn't have a good interface for the WM to handle input focus. Maybe
> we need a standard X extension that gives more focus control to the
> WM, and eventually make it a required extension, or make it a standard
> part of X.
>
> For now, I still think there could be a better approach. I though that
> the WM could always monitor input events for the focus window, but the
> X.org server apparently does not allow access to ButtonRelease events
> outside of the focus window.
>
> The original USER_TIME was modified to support a USER_TIME_WINDOW to
> avoid waking up processes that monitor PropertyNotify events. Instead
> of also requiring every client to create a USER_TIME_WINDOW, I think
> it would be more efficient to use a common USER_TIME_WINDOW, which is
> maintained by clients to hold both the Window ID and the event time of
> the last user-input event. But, that depends if USER_TIME's only
> purpose is to find the last input-event to avoid focus stealing.

If there was a desire to change the design of the USER_TIME business,
perhaps it would make more sense to have clients send a ClientMessage
to a window owned by the WM.  This would save the WM a round trip to
the server to get the updated timestamp.

The current description of USER_TIME_WINDOW is not clear about details
of how they are used, such as if every window must point to a unique
USER_TIME_WINDOW.  The intention seems to be that, but it is very open
ended right now, in terms of supporting all the possible
implementations.

Dana


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]