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 122688 - modal dialog popup + drag in progress = mouse freeze
modal dialog popup + drag in progress = mouse freeze
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Widget: Other
2.10.x
Other All
: High critical
: ---
Assigned To: gtk-bugs
gtk-bugs
: 122689 165185 317633 348297 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2003-09-19 01:02 UTC by Allison Karlitskaya (desrt)
Modified: 2006-11-06 17:19 UTC
See Also:
GNOME target: 2.16.x
GNOME version: 2.13/2.14


Attachments
screenshot of problem (88.24 KB, image/png)
2003-09-19 01:49 UTC, Allison Karlitskaya (desrt)
  Details
Cancel outstanding drag when grab shadowed (2.78 KB, patch)
2006-11-06 16:41 UTC, Alexander Larsson
none Details | Review

Description Allison Karlitskaya (desrt) 2003-09-19 01:14:05 UTC
I am experiencing a weird problem with nautilus.  It happened once by
accident, but I was able to reproduce my actions and can trigger the
problem every time now.  It's sort of difficult to explain... so here's
what you do to make it happen:

(1) open a navigation window
(2) start a large delete operation that's going to fail with an error
part-way through
(3) start a mouse-drag (like, to select multiple files)
(4) the error message from the delete pops up on top of your drag
(5) the UI is basically frozen now

What I mean by (5) is that you can't stop selecting the files.  If you
release the mouse button, the selection frame is still being dragged
around.  This causes you to not be able to click on the dialog box to clear it.

I'm guessing the mouse-release event doesn't get through to the main window
because of the modal dialog on top of it(?)

Other applications are effected as well.  I wasn't able to clear a dialog
in GIMP (1.3.x) which I was running to attempt to take a screenshot.  The
only way out that I know of is alt+f2 then 'killall nautilus'.

See attached screenshot.
Comment 1 Allison Karlitskaya (desrt) 2003-09-19 01:49:06 UTC
*** Bug 122689 has been marked as a duplicate of this bug. ***
Comment 2 Allison Karlitskaya (desrt) 2003-09-19 01:49:37 UTC
Created attachment 20074 [details]
screenshot of problem
Comment 3 Matthew Gatto 2004-10-29 01:56:54 UTC
yikes. Still a problem in 2.8? Please reopen if it is.
Comment 4 Allison Karlitskaya (desrt) 2004-10-31 02:15:20 UTC
Absolutely.  See also bug 156009

Reopening.
Comment 5 Christian Neumair 2005-08-26 21:44:05 UTC
Reassigning to GTK+.
Comment 6 Christian Neumair 2005-08-26 21:56:09 UTC
*** Bug 165185 has been marked as a duplicate of this bug. ***
Comment 7 Matthias Clasen 2005-08-26 22:41:48 UTC
GTK+ 2.8 has the means to handle situations like this. Nautilus should pay
attention to grab-broken events to fix.
Comment 8 Christian Neumair 2005-09-13 23:48:39 UTC
Matthias: How are we supposed to react? Is this emitted for the drag source
widget and we're supposed to cancel the drag in progress?
Comment 9 Matthias Clasen 2005-09-14 03:19:30 UTC
It is emitted on the grab widget, and you should react by cleaning up whatever
needs cleaning up when the drag ends, and naturally, by cancelling the drag.
Comment 10 Christian Neumair 2005-09-30 22:16:15 UTC
*** Bug 317633 has been marked as a duplicate of this bug. ***
Comment 11 Allison Karlitskaya (desrt) 2006-01-07 03:39:55 UTC
Marking this as a blocker for 2.14.
Comment 12 Federico Mena Quintero 2006-03-01 22:27:04 UTC
I think we just need this:

1. A global flag saying whether a drag is in progress.  This gets turned on in ::drag_begin() and ::drag_motion(), and gets turned off in ::drag_end() and ::drag_leave().

2. All async dialogs check the flag first.  These are the progress dialogs, the "error occurred during gnome_vfs_xfer_asnc()" dialogs, the auth dialogs.  If a drag is in progress, the dialog gets postponed until the drag ends.

3. The open-a-subtree-on-drag-motion code needs to check for the flag.  We may want to special-case file:// folders so that the subtree always opens (as file:// doesn't require auth), but don't open the subtree if the folder uses another VFS method.
Comment 13 Christian Neumair 2006-07-22 08:55:31 UTC
*** Bug 348297 has been marked as a duplicate of this bug. ***
Comment 14 André Klapper 2006-10-02 09:10:37 UTC
nautilus developers, can i expect some progress on this issue? what's the state?
Comment 15 André Klapper 2006-10-19 16:41:11 UTC
moving the old gnome 2.14.x target milestone to 2.16.x.
any status updates appreciated, code even more appreciated. :-)
Comment 16 Alexander Larsson 2006-11-06 16:39:35 UTC
I fixed the rubberbanding case, however the DnD case needs a gtk+ patch.
Comment 17 Alexander Larsson 2006-11-06 16:41:38 UTC
Created attachment 76091 [details] [review]
Cancel outstanding drag when grab shadowed

We currently look for grab-broken during the drag and cancel when we get it. We also want to look for grab-notify so that we catch grab shadows from e.g. a modal dialog popping up.
Comment 18 Alexander Larsson 2006-11-06 17:19:08 UTC
Commited to HEAD and gtk-2-10.