Wm/De/Applications




Hi again and welcome Dominik!

First of all: fvwm is a fine window manager that does the exactly right things
for lots of people. Noone want to deny this! The goal here isn't to kill all
window managers or to make them stupid window decorators while the desktop
environments do the rest of the job , the goal is to reach a certain level of
integration and to push X11 on step nearer to a usable desktop system. We must
not confuse the different levels here.

I don't think it's absolutely necessary that every windowmanager supports the
pager/whatever hints so that kpanel, the gnome-pager or whatever work with
them. I mean, if I was using fvwm, I want to use fvwm with all its modules and
simply run KDE or GNOME *applications*.

It's nevertheless interesting for desktop environments such as KDE and Gnome to
share the same hints for tools like a panel/taskbar, desktop sound events or
whatever. And if another window manager writer (for example Dominik) _likes_ to
provide a stripped down version of the window manager that can serve as a plugin
replacement for kwin or whatever, then this is fine. But that's surely not the
requirement and not the goal. 

My personal goal here is to make it finally possible for free software
programmers and professionals to write state-of-the art applications for X that
run on a wide range of desktops. Stardivison, for example, failed. Their
solution is a good technical choice but a sad one for X: they open _one_ window
and do everything manually, including popup menus. In version 3 they tried to
use the motif hints to get a non-decorated floating toolbar. Well, on most
systems, including some versions of fvwm and olvwm it showed up fully decorated
with a title "floatwin shell". Not really a way to compete against the Mac...

This is why I consider some new decorations hints absolutely crucial (such as
the toolwindow or the floating (but still managed and resizable) toolbars. If
you want to implement a floating toolbar with plain-ICCCM  you have to make it
override_redirect: no stacking by the wm, not managed at all, appears on all
virtual desktops, is sticky, no focus handling, etc. This must not be!

Also we need a common understand of transient_for. When I understand the ICCCM
correctly, transient_for is meant for dialogs. That implies (for me and for
MS-Windows): the window shares the same taskbar entry, the window is always on
top of its parent, the window has no iconify/maximize handle and is iconified
when the parent is iconfied.

In fact, transient_for is the only possibility for a toolkit vendor to provide
a window that has at least some kind of dialog semantics. But there are some
windowmanagers (4dwm for example) that do not decorate transient windows at
all.....  Users of these window managers usually blame the toolkit vendor: "hey,
why aren't my dialogs decorated, can't you guys write a decent toolkit...." ;(


Regarding the _NET_WM_CLOSE window thing: I noticed that it isn't particular
useful, because the window manager can't do anything other than sending the
WM_DELETE message if the window defined that protocol. This is yet another thing
were X is just not sufficient and MS-Windows superior: 
- On X11, if an application hangs, you close it with the wm. You wait. You close
it again. You wait again. You look in the WM handbook and finally find a kill
function. You kill the window.  
- On Windows, you simply close the window. After a few seconds the system will
show a message box that provides a possibility to kill the task.

We can easily achive this by adding a very very simple new WM_PROTOCOL
called  _NET_WM_PING: If the task receives this client message, it should 
simply send it back to the root window.

This way the WM can at the same time ping and close a window. If it receives a
ping-feedback, everything is ok, it the window closes, it's fine as well. No
ping, no close => message box.

Again, wm authors are free to implement or not to implement such a protocol.
It's absolutely not crucial to implement it, but it's nice to have. And simple
things like that are standard on other plattforms for ages.


Matthias



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