|
View:
New views
6 Messages
—
Rating Filter:
Alert me
|
|
|
What is the purpose of _NET_WM_USER_TIME?The wm-spec does not give a very good rationale for the USER_TIME
property. It is supposed to be for prioritizing newly mapped windows, but that doesn't justify updating the timestamp on every input event. Some of the overhead is avoided with _NET_WM_USER_TIME_WINDOW, but it still means sending an XChangeProperty for every key-stroke. Does updating the time for every event really server a useful purpose? Joe Krahn _______________________________________________ wm-spec-list mailing list wm-spec-list@... http://mail.gnome.org/mailman/listinfo/wm-spec-list |
|
|
|
|
|
|
|
|
Re: What is the purpose of _NET_WM_USER_TIME?On Tue, Feb 24, 2009 at 11:38 AM, Joseph Krahn <joseph.krahn@...> wrote:
... >> There's no way for the WM to "snoop" events intended for another >> client; it can grab keys and buttons, but that has other side effects. > You can watch any event for any window, excluding KeyPress events. > But, you can still watch KeyRelease events. Just use the 'xev' utility > with the -id option pointing to any window. If a client does grab > keys, you won't see them (for example xterm running in secure-keyboard > mode), but it is good to check for grabbed input before mapping a > window that will need that input to proceed. I just did some testing with the X.org server. You cannot monitor button press or release events for client windows, event though the Xlib documentation only disallows button press events. So, the WM would not be able to monitor client pointer events, at least for the current X.org server, without utilizing an extension to access events. Joe Krahn _______________________________________________ wm-spec-list mailing list wm-spec-list@... http://mail.gnome.org/mailman/listinfo/wm-spec-list |
|
|
Re: What is the purpose of _NET_WM_USER_TIME?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. Joe Krahn _______________________________________________ wm-spec-list mailing list wm-spec-list@... http://mail.gnome.org/mailman/listinfo/wm-spec-list |
|
|
Re: What is the purpose of _NET_WM_USER_TIME?2009/2/25 Joseph Krahn <joseph.krahn@...>
> > 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 _______________________________________________ wm-spec-list mailing list wm-spec-list@... http://mail.gnome.org/mailman/listinfo/wm-spec-list |
| Free embeddable forum powered by Nabble | Forum Help |