After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 338983 - Gimp Dialog popup makes metacity think "it doesn't react"
Gimp Dialog popup makes metacity think "it doesn't react"
Status: RESOLVED NOTGNOME
Product: metacity
Classification: Other
Component: general
2.14.x
Other Linux
: Normal normal
: ---
Assigned To: Metacity maintainers list
Metacity maintainers list
: 340273 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2006-04-19 09:23 UTC by Daniel Holbach
Modified: 2006-05-05 15:32 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Screenshot (15.32 KB, image/png)
2006-04-24 13:06 UTC, Daniel Holbach
Details

Description Daniel Holbach 2006-04-19 09:23:40 UTC
With fixing bug 338286 a new problem arose:
When I use gimp 2.2.11 and metacity 2.14.2 the following problem is reproducible:
 * I click on "close layers dock",
 * dialog pops up, asking me if it can close all the tabs,
 * I wait a bit
 * "this applications doesn't react" popup comes up.

According to Sven it doesn't happen with metacity 2.12.3
Comment 1 Elijah Newren 2006-04-19 18:29:12 UTC
Well, I just built gimp 2.2.11 to try to test this out, but I'm not very familiar with the gimp so you're going to have to give me much more detailed steps to reproduce.  (I don't see "close layers dock" anywhere...)
Comment 2 Björn Lindqvist 2006-04-20 09:37:17 UTC
1. Open Gimp.
2. Open an image
3. Press Ctrl+L
4. Click the small button in the layer dock next to the X, add tab -> Layer.
5. Try to close the layers dock and Gimp pops up a "Close all tabs?" dialog. 

I cant reproduce it using CVS Metacity and Gimp 2.2.8 so maybe it is Gimps fault after all?
Comment 3 Elijah Newren 2006-04-22 23:11:43 UTC
I can't duplicate with gimp 2.2.11 (checked out the GIMP_2_2_11 tag from cvs) and with metacity head or metacity 2.14.2 (METACITY_2_14_2 tag in cvs).  Daniel: Can you duplicate with either of those?  If not, I'd start looking into any patches you might be using.  If you can duplicate with one of those, maybe you have extra steps needed to duplicate?
Comment 4 Daniel Holbach 2006-04-24 13:05:37 UTC
I checked out the metacity and gimp. gimp fails for me to make dist (trying to make a plain package with it) - I'll keep on trying. Using metacity from CVS and reverting all Ubuntu patches, I can still reproduce the issue. For building it, we use --enable-startup-notification=yes --enable-xsync=yes (which seems the default to me).

Sorry, if that's not the full information you need yet, but I wanted to make sure to follow up. As I said, I keep on trying.

Do you get the "You want to close all the tabs?" dialog? (attaching picture)
Comment 5 Daniel Holbach 2006-04-24 13:06:12 UTC
Created attachment 64202 [details]
Screenshot
Comment 6 Elijah Newren 2006-04-24 16:02:07 UTC
Yes, I get the dialog asking whether I want to close all tabs and not the metacity dialog asking whether to force the application to quit.  Also, startup-notification and xsync are built in by default if the relevant libraries are found, which I suspect they will be in most all cases (so requiring both isn't quite the default but basically is).  My build had both enabled.

Thanks for following up, let me know how the tests with GIMP_2_2_11 go...
Comment 7 Elijah Newren 2006-05-01 13:32:48 UTC
*** Bug 340273 has been marked as a duplicate of this bug. ***
Comment 8 Elijah Newren 2006-05-01 13:37:59 UTC
Pierre in bug 340273 got this with dapper as well, but this time using gedit.  Can anyone reproduce with upstream versions of all relevant components (gtk+, metacity, and the program you can duplicate with)?
Comment 9 Sebastien Bacher 2006-05-04 10:51:53 UTC
Other Ubuntu bug about that: https://launchpad.net/distros/ubuntu/+bug/29584
Comment 10 Elijah Newren 2006-05-04 15:06:36 UTC
Sebastien: It'd be great if you could ask the question in comment 8 to those bug reporters; I have only gotten bug reports of this from dapper users and have been unable to duplicate myself.
Comment 11 Pierre-Charles David 2006-05-05 04:39:50 UTC
I've juste updated Dapper, and the bug disappeared. Sorry I didn't write down which packages got updated... Apparently I'm not the only one: see Noah Medling's message at https://launchpad.net/distros/ubuntu/+bug/29584 ; he got it fixed yesterday by a simple update.
Comment 12 Elijah Newren 2006-05-05 14:14:55 UTC
Most likely either gtk+ or metacity.  Anyway, I'm assuming this was a dapper-specific bug unless someone can prove otherwise, but it's nice to hear that it's fixed anyway.  :-)
Comment 13 Sebastien Bacher 2006-05-05 14:40:26 UTC
I doubt there is something distro specific, metacity and GTK have few patches and they are not likely to have something to do with that. Elijah, is there a description on how that feature work somewhere or could you point the code responsive for it? To know where to look in case another user get the issue again :)
Comment 14 Elijah Newren 2006-05-05 15:32:28 UTC
Sure, after the little 'X' close button gets pressed:

1. metacity/src/delete.c:meta_window_delete() gets called.  This sends a wm_delete_window message to the application (to let it know that it should shut itself down), and also calls meta_display_ping_window() to "ping" the application and set up reply & timeout handlers.

2. metacity/src/display.c:meta_display_ping_window() sets up ping reply and ping timeout handlers (delete.c:delete_ping_reply() and delete.c:delete_ping_timeout_func(), respectively, in this case).  It then sends a _net_wm_ping message to the application.

3. If the gtk+ application hasn't frozen somehow (or the event handlers haven't been messed up in some strange way), gtk+/gdk/gdkevents-x11.c:gdk_wm_protocols_filter() obtains the _net_wm_ping message and immediately responds by returning a ping to the root window.

4. If metacity's ping reply function is called before its timeout function (because the application sent a ping message to the root window), metacity disables both its reply and timeout functions and does no further processing.  If the timeout function is triggered, metacity shows the force quit dialog.