GNOME Bugzilla – Bug 687342
Deadlocks when a second window is opened.
Last modified: 2014-11-02 10:36:21 UTC
Steps to reproduce: 1. Launch Dictionary. 2. Search for “sonorous”. 3. Click the “Sound” link in the definition. 4. Try to interact with the new window that appears containing the definition of “Sound”. Expected results: • Either the definition of “Sound” should appear in the same window, with a back button, or a new window should appear with the definition. • Either way, it should be possible to scroll the definition of “Sound”, select text, etc. Actual results: • A new window pops up, but both windows stop responding to user input. • They focus, redraw, resize just fine, but you can't interact with any of their widgets in any way. • Closing the “Sound” window makes the original window work again. • Other notes: On launch, this warning is printed to the console: (gnome-dictionary:27615): Gtk-CRITICAL **: gtk_device_grab_add: assertion `GDK_IS_DEVICE (device)' failed On clicking the Sound link, these warnings are printed to the console: (gnome-dictionary:27615): Gdk-CRITICAL **: gdk_window_get_toplevel: assertion `GDK_IS_WINDOW (window)' failed (gnome-dictionary:27615): Gtk-CRITICAL **: _gtk_widget_captured_event: assertion `WIDGET_REALIZED_FOR_EVENT (widget, event)' failed and about 30 more copies of that latter warning. I think maybe a new mainloop is being run from within the callback for the link activation signal? So as far as the app is concerned, the click doesn't end until you close the new window. Closing the original window (for “Sonorous”) also closes the new window, and the application terminates cleanly, which is not what I would expect: I would expect only one window to close.
(In reply to comment #0) > Steps to reproduce: > > 1. Launch Dictionary. > 2. Search for “sonorous”. > 3. Click the “Sound” link in the definition. > 4. Try to interact with the new window that appears containing the definition > of “Sound”. > > Expected results: > > • Either the definition of “Sound” should appear in the same window, with a > back button, or a new window should appear with the definition. > • Either way, it should be possible to scroll the definition of “Sound”, select > text, etc. > > Actual results: > > • A new window pops up, but both windows stop responding to user input. > • They focus, redraw, resize just fine, but you can't interact with any of > their widgets in any way. > • Closing the “Sound” window makes the original window work again. > • > > Other notes: > > On launch, this warning is printed to the console: > > (gnome-dictionary:27615): Gtk-CRITICAL **: gtk_device_grab_add: assertion > `GDK_IS_DEVICE (device)' failed > > On clicking the Sound link, these warnings are printed to the console: > > (gnome-dictionary:27615): Gdk-CRITICAL **: gdk_window_get_toplevel: assertion > `GDK_IS_WINDOW (window)' failed > > (gnome-dictionary:27615): Gtk-CRITICAL **: _gtk_widget_captured_event: > assertion `WIDGET_REALIZED_FOR_EVENT (widget, event)' failed > > and about 30 more copies of that latter warning. this is probably related to the event handling above - though I thought it had been fixed in master already. > I think maybe a new mainloop is being run from within the callback for the link > activation signal? So as far as the app is concerned, the click doesn't end > until you close the new window. no, we don't use nested main loops. > Closing the original window (for “Sonorous”) also closes the new window, and > the application terminates cleanly, which is not what I would expect: I would > expect only one window to close. this is another bug, and probably it's caused by a broken port to GtkApplication. can you file it separately?
(In reply to comment #1) > > On clicking the Sound link, these warnings are printed to the console: > > > > (gnome-dictionary:27615): Gdk-CRITICAL **: gdk_window_get_toplevel: assertion > > `GDK_IS_WINDOW (window)' failed > > > > (gnome-dictionary:27615): Gtk-CRITICAL **: _gtk_widget_captured_event: > > assertion `WIDGET_REALIZED_FOR_EVENT (widget, event)' failed > > > > and about 30 more copies of that latter warning. > > this is probably related to the event handling above - though I thought it had > been fixed in master already. This is with 3.4. I get exactly the same symptom if I hit File → New, actually.
I have reproduced the main bug here with git master (aa132d2a). (In reply to comment #1) > (In reply to comment #0) > > Closing the original window (for “Sonorous”) also closes the new window, and > > the application terminates cleanly, which is not what I would expect: I would > > expect only one window to close. > > this is another bug, and probably it's caused by a broken port to > GtkApplication. can you file it separately? This bug is not present in master, so there's no pressing reason to file another bug.
3.4 has long since been obsolete, and apart from minor lagging I cannot reproduce this with the current stable release of gnome-dictionary.