The EWMH doesn't impose any policy.  Each window manager uses the
information from the hints to direct focus policy.  Though I believe
that all the window managers implementing this part of the spec have
chosen similar policies.

Gaim was specifically considered in the formulation of the metacity
policy.  Indeed, gaim is one of the primary reasons for the development
of the specification: gaim popup conversations are a severe security
risk.  What other application has the potential to so easily result in
the accidental transmission of a password over the internet unencrypted?

My suggestion is that if you think that the notification for new gaim
messages is insufficiently obvious, that you make suggestions for
improving support for DEMANDS_ATTENTION in the wnck panel applets
(Currently, the window is shown in bold in the window list).  Perhaps a
notification icon could be used, or something similar.

But, really, it all works perfectly for gaim as it is without any code
changes, since gaim uses gtk+, which automatically supports the hint.
GAIM need not do anything with DEMANDS_ATTENTION -- this hint is managed
by the window manager and an application need not concern itself with
this hint.  The only case where an application needs to worry about any
of this is when it launches new windows by communication out-of-process.


On Wed, 2005-05-25 at 15:54 -0400, Luke Schierer wrote:
> Hi,
> I am one of the gaim developers, and am writing this list at the
> prompting of Warren, our RedHat packager.
> Warren notified us of the change to focus policy that gnome/metacity
> has implemented, and I am happy to learn that efforts are finally
> underway to address this significant issue.
> We (gaim developers) were, however, dismayed to learn what direction
> these efforts had taken.  Our reaction, detailed at great length in
> #gaim on, has been compiled into
> which I include here.
> While specs are a wonderful thing, it is not good to attempt to
> re-invent the entire interaction between window managers/other
> aspects of a desktop environment and applications in place of the
> existing ICCCM spec.
> Hopefully you all will find some of our points/ideas/statements
> useful, and will come up with something better than either the
> existing behavior or the new, arguably worse behavior (short of
> rewriting all existing legacy X applications that might create a
> window).
> Luke Schierer
> Gaim Support
> * window focus should only be transfered from one window to another by the direct action of the user.
> 	* The WM does not know when a new window is user initiated or not.
> 	* The application that requests the new window does know
> 	* In the case of new application launch, this yields a useful result: you can start several things
> 	  in the background (or on login) and not have your focus jerked around as they start.
> 	* While it is acceptable to design a specification by which an application which does not currently
> 	  have focus can request it either by creation of a new window, or for an existing window, such
> 	  a specification should be an opt-in policy.  quoting Etan:
> 		  "If, however, people feel that there should be a way for an application to request focus on
> 		  mapping that's fine. Such a specification should be written such that it is an opt-in concept,
> 		  not an opt-out one (or one that requires all applications to follow for it to work). For
> 		  example, given our experience with metacity (and the focus stealing prevention spec) the fact
> 		  that gaim does not do anything to accomodate the spec used to cause all of our windows to be
> 		  on top and focused, and now causes all our windows to be popped up underneath other windows.
> 		  This is really an unacceptable way to design a new specification, especially when dealing with
> 		  something as old as X and which has legacy applications which one wants to continue to have act
> 		  correctly. If the purpose of this spec is to only make windows that really want focus on map
> 		  to get it than require that *those applications* set the property to some agreed upon value or
> 		  set of values, and that anything which does not is going to be treated in a wm consistent and
> 		  non-annoying fashion (i.e. not given focus on map, but also not hidden and therefore requiring
> 		  further specification to function usefully)."
> * new windows should be created at the top level unless specifically requested otherwise by the starting
>   application.  Placement should reflect some overall policy of the WM, preferably a policy that the
>   user understands and can predict.  Remembering previous placement is a reasonable, but not required,
>   part of said policy.
> 	* Window stacking and focus policy should be at least somewhat decoupled.
> 	* It is acceptable for a window manager's overall focus policy to include some concept of absolute
> 	  Z-level and restrict an application to a single Z-level.  Such a policy, however, should include
> 	  some method to notify the user that a new window has been created.
> * Applications which currently have focus should be able to hint if a window said application has
>   created gets focus or not.  It should be able to do so without changing the level at which the window
>   is created (assuming the hint is followed).
> 	* While it may be valuable to specify or further specify how this should be done, _NET_WM_USER_TIME
> 	in it's current overloaded state does not seem to us to be a viable solution for this. We would
> 	suggest something like a _NET_WM_[GET_|TAKE_|REQUEST_]FOCUS property.
> * Applications which do not have focus should not be able to pull focus from another application in a
>   way that the user cannot disable or modify.  Changes to individual applications at a source code
>   level should not be necessary for this behavior.
>   * _NET_WM_STATE_DEMANDS_ATTENTION may have merit here if used to indicate that a window which requests
>     focus was not given in so as to comply with the WM's policies on focus.
> * Window managers and and applications should  both support both the ICCCM and fd.o specs
> 	* That being said, ICCCM has been a specification since 1993, and (for example) gnome should be
> 	  supporting urgency before they get too upset about us not supporting
> 	  _NET_WM_STATE_DEMANDS_ATTENTION.  Further, we undertake to implement support for this after
> 	  Gnome supports urgency.
> _______________________________________________
> wm-spec-list mailing list
> wm-spec-list gnome org

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