diff --git a/content/events/src/nsEventStateManager.cpp b/content/events/src/nsEventStateManager.cpp index c135339d46a5..2d659614f1f2 100644 --- a/content/events/src/nsEventStateManager.cpp +++ b/content/events/src/nsEventStateManager.cpp @@ -2207,13 +2207,14 @@ nsEventStateManager::DoDefaultDragStart(nsPresContext* aPresContext, return; } - // check which drag effect should initially be used - PRUint32 effectAllowed; - aDataTransfer->GetEffectAllowedInt(&effectAllowed); - - PRInt32 action = 0; - if (effectAllowed != nsIDragService::DRAGDROP_ACTION_UNINITIALIZED) - action = effectAllowed; + // check which drag effect should initially be used. If the effect was not + // set, just use all actions, otherwise Windows won't allow a drop. + PRUint32 action; + aDataTransfer->GetEffectAllowedInt(&action); + if (action == nsIDragService::DRAGDROP_ACTION_UNINITIALIZED) + action = nsIDragService::DRAGDROP_ACTION_COPY | + nsIDragService::DRAGDROP_ACTION_MOVE | + nsIDragService::DRAGDROP_ACTION_LINK; // get any custom drag image that was set PRInt32 imageX, imageY; diff --git a/widget/src/gtk2/nsWindow.cpp b/widget/src/gtk2/nsWindow.cpp index c7176956b914..a65d1398e35e 100644 --- a/widget/src/gtk2/nsWindow.cpp +++ b/widget/src/gtk2/nsWindow.cpp @@ -3065,11 +3065,11 @@ nsWindow::OnDragDropEvent(GtkWidget *aWidget, // only protects innerMostWidget from being deleted, it does NOT protect // against nsView::~nsView() calling Destroy() on it, bug 378670. if (!innerMostWidget->mIsDestroyed) { - event.message = NS_DRAGDROP_DROP; - event.widget = innerMostWidget; + nsDragEvent event(PR_TRUE, NS_DRAGDROP_DROP, innerMostWidget); event.refPoint.x = retx; event.refPoint.y = rety; + nsEventStatus status = nsEventStatus_eIgnore; innerMostWidget->DispatchEvent(&event, status); }