Re: Menu accelerators, dots, and modal windows (fwd)



Havoc Pennington writes:
 > > Isn't there a window manager hint in gnome-libs for this? Just set the
 > > layer of the window you want on top to WIN_LAYER_ONTOP.
 > 
 > I thought that might apply, but I couldn't really tell. It is not quite
 > right though - it should be on top of the other windows from the same
 > application, not on top of all applications.
 > 
 > An implementation problem is making gtk_window_set_modal invoke the hint
 > whenever it's called - since Gtk+ doesn't have the wm extensions. A hack
 > for now could add a virtual function to GtkWindowClass and override it in
 > GnomeDialogClass... 

This is the exactly the point that I was making about the potential
need to stick the wm hints code into a widget that acts as the top
level window for all gnome windows. 

Leaving the code in a collection of functions that can be applied to
widgets (as in libgnomeui/gnome-winhints.c) rather than integrating
it into the widgets themselves will leave you with implementation 
problems like this one mentioned by Havoc.

For example, say I want to show a dialog based selection widget on a
particular workspace. I can create the widget and set the workspace
hint using gnome-winhints.c. However, if this complex widget creates
a "child" window when the user presses some button then how do I set 
the wm hint on that window? I never get a reference to the widget to 
pass to the gnome-winhints.c functions. 

Of course, what I want is for the "child" window to inherit the
workspace from the "parent" dialog. This can be implemented if the
gnome wm hints are handled by code inside all the window widgets.

It is probably possible to find work arounds for these nasty cases.
However, we are making it difficult to use the gnome wm hints. This
is not a good idea. Proper compliance with ICCCM is notoriously
rare. Proper compliance with the gnome wm hints should be made much
more certain. Building that compliance into the widgets looks like
the best approach to me.

Felix



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