Re: Interaction between applications and compositing managers



Soeren Sandmann a écrit :
Hello

To integrate a compositing manager well with the rest of the desktop,
new hints and protocols between applications and compositing managers
are needed. This message is intended to start that discussion.


*** Window types

A compositing manager deals with all windows that are visible on the
screen, even override-redirect ones. This means new window types
are needed so the compositing manager will know how to decorate the override-redirect windows with translucency and shadows etc.

Here are some typical override redirect windows:

- DND windows (showing drag icons etc.)

- Tooltips

- Menus, drop-down menus and right click menus.

- Combo box popups

- Notifications ("you are are running out of battery" etc.)

- Random little popups, such as the search boxes on trees and lists

Also many applications pop up their own app-specific override-redirect
windows for whatever reason.

One possibility is to add a bunch of new possible window types to the
_NET_WM_WINDOW_TYPE property:

   _NET_WM_WINDOW_TYPE_DND_WINDOW
   _NET_WM_WINDOW_TYPE_TOOLTIP
_NET_WM_WINDOW_TYPE_NOTIFICATION _NET_WM_WINDOW_TYPE_DROP_DOWN_MENU
   _NET_WM_WINDOW_TYPE_POPUP_MENU
   _NET_WM_WINDOW_TYPE_COMBO

That will take care of most of the override redirect windows on a
typical. CM's will still need to deal with unannotated
override-redirect windows from old applications.

Do we need any other types?



I do not know, GTK and QT developer can surely answer (I found the
notification type a bit out of topic).

But:

(1) It will be useful to know for which window the  override-redirect
window is for. Either we can add, in the spec, that the WM_TRANSIENT_FOR
hint should be set for override-redirect windows or add a new hint, say
"_NET_WM_UNMANAGED_FOR", similar to WM_TRANSIENT_FOR.
This can help a compositor which makes some persistent transformations
on windows (as Metisse or Looking Glass).

(2) I think that using a new property "_NET_WM_UNMANAGED_TYPE" (and then
NET_WM_UNMANAGED_TYPE_DND_WINDOW ...etc) will help to avoid confusion.

Regards, Olivier



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