[xmonad] Issue 96 in xmonad: certain dialogs get dropped in gnucash

Jason Creighton jcreigh at gmail.com
Thu Dec 13 00:53:48 EST 2007

On Wed, Dec 12, 2007 at 08:12:35PM -0800, Andrew Sackville-West wrote:
> On Wed, Dec 12, 2007 at 05:35:16PM -0800, codesite-noreply at google.com wrote:
> > This gets us in trouble with Gnucash, which, for some reason, sends, one 
> > after the
> > other, a MapRequest, a synthetic UnmapNotify and then another MapRequest. 
> I've said this before, but it bears repeating: this looks an awful lot
> like Gnucash is doing something wrong. Why would some dialogs but not
> others generate this behavior? It must be something internal to
> gnucash that is broken or at least odd. GNucash only fairly recently
> completed the transtion to gtk2.0 and it's likely that some problems
> exist. 

Well, it's odd that Gnucash does that, but I don't think it's broken:
Mapping, unmapping and then remapping a window *should* leave it
visible, and the fact that it didn't in xmonad was a bug, which we

> WHat sort of things would I look for in Gnucash that might cause this?
> Is it the type of thing that might be caused by some spurious extra
> call to a window creation routine, for example? 

I can't imagine caring that much. :)

Seriously, it's probably not worth it: Even you if you find what looks
like a problem, you'll have to do a lot of research and testing to
figure out if that's actually the case, then you have to convince the
Gnucash devs to accept a patch, blah blah blah work work work.

But your offer to look at the Gnucash source code got me curious, so I
downloaded the source for 2.2.1, followed the chain of calls down until
I found this in the middle of gnc_search_dialog_init_widgets in

        /* show it all */
        gtk_widget_show_all (sw->dialog);

        /* hide the dialog */
        gtk_widget_hide (sw->dialog);

What that says to me is this: They have some reason for doing what
they're doing and it's probably not a simple fix to do it a different
way. If I attempt to figure out why, or attempt to figure out a
different way to do it, I'll get sucked into a bunch of discussion,
research, coding and testing that I don't really want to do.

But hey, I could be wrong, and you're certainly welcome to pursue that
in any way you see fit. I just don't think Gnucash is broken in this
regard, it's just a little weird.

> If I get some decent pointers, I could dig into the code and try to
> track it down on the gnucash end so that your less-than-ideal solution
> could be cleaned up. 

We've done everything we can on the xmonad end, and it works fine. (For
me, anyway. Unless you're seeing some additional problems?) I'm not
going to lose any sleep over it.

Jason Creighton

More information about the xmonad mailing list