SVN commit 1170439 by aseigo: better drag start behaviour M +11 -4 resultitem.cpp M +2 -1 resultitem.h --- trunk/KDE/kdebase/workspace/krunner/interfaces/default/resultitem.cpp #1170438:1170439 @@ -39,6 +39,7 @@ #include #include +#include #include #include @@ -64,7 +65,8 @@ m_actionsLayout(0), m_runnerManager(runnerManager), m_sharedData(sharedData), - m_mouseHovered(false) + m_mouseHovered(false), + m_mimeDataFailed(false) { m_highlightCheckTimer.setInterval(0); m_highlightCheckTimer.setSingleShot(true); @@ -126,6 +128,7 @@ void ResultItem::setMatch(const Plasma::QueryMatch &match) { + m_mimeDataFailed = false; m_match = match; m_icon = KIcon(match.icon()); @@ -442,16 +445,20 @@ void ResultItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - kDebug() << event->button() << Qt::LeftButton; - + if (!m_mimeDataFailed && + event->buttons() == Qt::LeftButton && + (event->pos() - event->buttonDownPos(Qt::LeftButton)).manhattanLength() >= KGlobalSettings::dndEventDelay()) { QMimeData * mime = m_runnerManager->mimeDataForMatch(m_match); - + //kDebug() << mime << m_match.text() << m_match.id() << m_match.data(); if (mime) { QDrag * drag = new QDrag(event->widget()); drag->setMimeData(mime); drag->exec(); } + + m_mimeDataFailed = !mime; } +} bool ResultItem::mouseHovered() const { --- trunk/KDE/kdebase/workspace/krunner/interfaces/default/resultitem.h #1170438:1170439 @@ -148,7 +148,8 @@ Plasma::RunnerManager *m_runnerManager; QPropertyAnimation *m_highlightAnim; const SharedResultData *m_sharedData; - bool m_mouseHovered; + bool m_mouseHovered : 1; + bool m_mimeDataFailed : 1; static int s_fontHeight; };