зеркало из https://github.com/mozilla/gecko-dev.git
Bug 367203
Starting with gtk 2.10.7, drags are canceled when the toolkit-private drag widget is grab-shadowed by another gtk_grab_add call in the application. This is a necessary fix to avoid "stuck drag" situations when a modal dialog pops up while a drag is in progress. Unfortunately, the mozilla dnd implementation does just that - it calls gtk_grab_add in the nsDragService::GetTargetDragData method. This causes drags of mesages from the message list to the folder tree in thunderbird to fail with gtk 2.10.7. Fortunately, the gtk_grab_add in nsDragService::GetTargetDragData doesn't seem to have any real purpose - at least the nsDragService code doesn't make any use of the grabbing, and just removing the grab_add/grab_remove calls in that function makes dnd work again in thunderbird. Patch by Matthias Clasen <mclasen@redhat.com> r=caillon@redhat.com sr=roc@ocallahan.org
This commit is contained in:
Родитель
4e8a6898a5
Коммит
281df32ee0
|
@ -799,7 +799,6 @@ nsDragService::IsTargetContextList(void)
|
|||
void
|
||||
nsDragService::GetTargetDragData(GdkAtom aFlavor)
|
||||
{
|
||||
gtk_grab_add(mHiddenWidget);
|
||||
PR_LOG(sDragLm, PR_LOG_DEBUG, ("getting data flavor %d\n", aFlavor));
|
||||
PR_LOG(sDragLm, PR_LOG_DEBUG, ("mLastWidget is %p and mLastContext is %p\n",
|
||||
mTargetWidget, mTargetDragContext));
|
||||
|
@ -817,7 +816,6 @@ nsDragService::GetTargetDragData(GdkAtom aFlavor)
|
|||
gtk_main_iteration();
|
||||
}
|
||||
PR_LOG(sDragLm, PR_LOG_DEBUG, ("finished inner iteration\n"));
|
||||
gtk_grab_remove(mHiddenWidget);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Загрузка…
Ссылка в новой задаче