
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@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 fixed.
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 src/gnome-search/dialog-search.c: /* 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