]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kitemlistcontroller.cpp
Merge branch 'Applications/17.04'
[dolphin.git] / src / kitemviews / kitemlistcontroller.cpp
index a9ebf97af9a5e44336491ebd3b340ff754544d4f..a9596977105e9c43698bd4fcc4924ad5bed4da56 100644 (file)
@@ -801,6 +801,22 @@ bool KItemListController::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event,
         }
     }
 
+    if (event->button() & Qt::RightButton) {
+        m_selectionManager->clearSelection();
+        if (index >= 0) {
+            m_selectionManager->setSelected(index);
+            emit itemContextMenuRequested(index, event->screenPos());
+        } else {
+            const QRectF headerBounds = m_view->headerBoundaries();
+            if (headerBounds.contains(event->pos())) {
+                emit headerContextMenuRequested(event->screenPos());
+            } else {
+                emit viewContextMenuRequested(event->screenPos());
+            }
+        }
+        return true;
+    }
+
     bool emitItemActivated = !(m_view->style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick) || m_singleClickActivationEnforced) &&
                              (event->button() & Qt::LeftButton) &&
                              index >= 0 && index < m_model->count();
@@ -1168,7 +1184,7 @@ void KItemListController::startDragging()
     const QPixmap pixmap = m_view->createDragPixmap(selectedItems);
     drag->setPixmap(pixmap);
 
-    const QPoint hotSpot(pixmap.width() / 2, 0);
+    const QPoint hotSpot((pixmap.width() / pixmap.devicePixelRatio()) / 2, 0);
     drag->setHotSpot(hotSpot);
 
     drag->exec(Qt::MoveAction | Qt::CopyAction | Qt::LinkAction, Qt::CopyAction);