Bug 750284 - WidgetQt Drag service should be initializing in different threads. r=dougt

This commit is contained in:
Oleg Romashin 2012-05-03 06:22:33 -04:00
parent 73e93532ac
commit 6c05951339

View File

@ -38,6 +38,8 @@
#include "qmimedata.h"
#include "qwidget.h"
#include "qapplication.h"
#include "qthread.h"
#include "nsDragService.h"
#include "nsISupportsPrimitives.h"
@ -158,6 +160,11 @@ nsDragService::SetupDragSession(
}
}
if (qApp->thread() != QThread::currentThread()) {
NS_WARNING("Cannot initialize drag session in non main thread");
return NS_OK;
}
if (!mHiddenWidget) {
mHiddenWidget = new QWidget();
}
@ -191,7 +198,9 @@ nsDragService::InvokeDragSession(
NS_IMETHODIMP
nsDragService::ExecuteDrag()
{
Qt::DropAction dropAction = mDrag->exec( mDropAction );
if (qApp->thread() == QThread::currentThread()) {
mDrag->exec(mDropAction);
}
return NS_OK;
}