GNOME Bugzilla – Bug 139322
gkrellm needs initial state to be WithdrawnState
Last modified: 2011-02-04 16:16:53 UTC
Run gkrellm -w with gtk 2.4.0 (under blackbox or fluxbox). It should go into the 'slit' (basically a dock of sorts), but it doesn't. In fact, anything that needs the initial state to be WithdrawnState can't get it. As a brute force fix, you can delete the contents of update_wm_hints() in the gtk source ( gtk+-2.4. 0/gdk/x11/gdkwindow-x11.c) and reinstall. This forces the intial state to not get set to normal state, which allows applications like gkrellm to function properly. The gentoo bugzilla has this bug listed: http://bugs.gentoo.org/show_bug.cgi?id=45335
If you never gtk_widget_show() a widget it will be in the withdrawn state. (You can force a X window to be created with gdk_window_realize()) So I don't really understand the problem. We need a lot more detail here (a detailed diagnosis of what X properties GDK is setting and what you think it should be setting instead) before we could do anything with GTK+.
Basically, the WithdrawnState initial state is used by several window managers (such as blackbox and fluxbox) to know that a window belongs in a 'slit' (like a dock of sorts). gkrellm do this by setting it's wm hints to have an initial state of WithdrawnState on its own. in gtk+ 2.2.4, it worked fine this way. Now with gtk+ 2.4.0, gdk will overwrite the explicitly set initial state with NormalState, which means gkrellm won't go into the slit like it wanted to.
Can you provide: A) A small test program (#include <gdkx.h> GDK_DRAWABLE_XID(drawable) are probably useful to print XIDs for using for xininfo) B) A description of what properties to look at with xwininfo to see what properties you expect to be different. This sounds like blatent abuse of the ICCCM and not supportable, but I could be wrong.
*** Bug 142296 has been marked as a duplicate of this bug. ***
Owen is right that it is an use which is not covered by the ICCCM, which only allows NormalState and IconicState as values for the initial_state field.