On Wed, 15 Sep 2010 at 12:59:00 -0400, Brad Jorsch wrote:
> On Wed, Sep 15, 2010 at 04:40:52PM +0200, Gilbert wrote:
> >
> > "." = {NoAppIcon = Yes;};
> > "*" = {NoAppIcon = Yes;};
>
> Oh, I see. It lets you override NoAppIcon generically instead of for
> each app.
>
> > Exactly, having 'DockApp' as the class name makes them behave more
> > consistently internally. This might be fixed in some other way
> > internally, but I couldn't figure it out...
>
> Except it doesn't, the only thing it changes inside wmaker is that it
> avoids displaying the name as "DockApp" on the settings window.
>
> A "dockapp" is just an application that sets icon_window in WM_HINTS
> (which causes a window to be displayed as the app icon) and
> initial_state to WithdrawnState (which causes the main window to not
> actually appear when the window is mapped). The class has nothing to do
> with it.
>
> The problems I mentioned stem from gtk+ not allowing you to set
> initial_state to WithdrawnState. Openbox and fluxbox (and maybe others)
> don't take the icon_window into their "slit" unless initial_state is
> WithdrawnState, so the whole thing completely fails. Wmaker always uses
> the icon_window for the app icon, so that part works fine, but the
> "main" app window still flashes onscreen for a split second before the
> app can call gdk_window_withdraw(), and wmaker applies SharedAppIcon to
> it which winds up screwing up the "Kill" menu option.
>
> That said, I've attached a patch to have wmaker treat any window with
> class DockApp as if it had initial_state = WithdrawnState, and hopefully
> openbox, fluxbox, and the like will pick up the idea too so gtk+
> hacks[1] will no longer be needed. If this patch is accpeted, I'll poke
> fluxbox and openbox to suggest the idea to them.
>
>
> [1] E.g.
> http://wmudmount.svn.sourceforge.net/viewvc/wmudmount/dock.c?r1=8&r2=7
> From e632579546e8c503c685af5169f0bde470fe7b6c Mon Sep 17 00:00:00 2001
> From: Brad Jorsch <[email protected]>
> Date: Wed, 15 Sep 2010 12:45:03 -0400
> Subject: [PATCH] Improve dockapp recognition
>
> Dockapps are traditionally recognized by having initial_state =
> WithdrawnState in WM_HINTS. But some toolkits (e.g. gtk+) will not allow
> setting initial_state in this way. So we offer an alternative: any
> window with the res_class portion of WM_CLASS set as "DockApp" will be
> treated as if it had initial_state = WithdrawnState.
I applied the patch with 'git am' and it turned out that the whole
email appeared in the commit. I left it untouched because I think
the explanations in the email are worth keeping in the logs too.
Take a look at 'next' to check it out.
> ---
> NEWS | 9 +++++++++
> src/window.c | 9 +++++++++
> src/window.h | 1 +
> 3 files changed, 19 insertions(+), 0 deletions(-)
Thanks for updating NEWS.
Overall, I think your patch is quite nice and it makes
a lot of sense to look for the 'DockApp' string as a
way to recognize dockapps, IMHO.
--
To unsubscribe, send mail to [email protected].