]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kcategorizedview.cpp
SVN_SILENT made messages (.desktop file)
[dolphin.git] / src / kcategorizedview.cpp
index 3a53638070faba7ed6f4891dd0f2500b90d80660..6fa7632f2731445b33f96e8223642589ec473c2a 100644 (file)
@@ -1040,9 +1040,10 @@ void KCategorizedView::mouseMoveEvent(QMouseEvent *event)
             end = d->mousePosition;
         }
 
-        rect = QRect(start, end).intersected(viewport()->rect().adjusted(-16, -16, 16, 16));
+        rect = QRect(start, end).adjusted(-16, -16, 16, 16);
+        rect = rect.united(QRect(start, end).adjusted(16, 16, -16, -16)).intersected(viewport()->rect());
 
-        viewport()->update();
+        viewport()->update(rect);
     }
 }
 
@@ -1112,6 +1113,34 @@ void KCategorizedView::mouseReleaseEvent(QMouseEvent *event)
         }
     }
 
+    QRect rect;
+    if (!d->isDragging)
+    {
+        QPoint start, end, initialPressPosition;
+
+        initialPressPosition = d->initialPressPosition;
+
+        initialPressPosition.setY(initialPressPosition.y() - verticalOffset());
+        initialPressPosition.setX(initialPressPosition.x() - horizontalOffset());
+
+        if (d->initialPressPosition.x() > d->mousePosition.x() ||
+            d->initialPressPosition.y() > d->mousePosition.y())
+        {
+            start = d->mousePosition;
+            end = initialPressPosition;
+        }
+        else
+        {
+            start = initialPressPosition;
+            end = d->mousePosition;
+        }
+
+        rect = QRect(start, end).adjusted(-16, -16, 16, 16);
+        rect = rect.united(QRect(start, end).adjusted(16, 16, -16, -16)).intersected(viewport()->rect());
+
+        viewport()->update(rect);
+    }
+
     if (d->hovered.isValid())
         viewport()->update(visualRect(d->hovered));
     else if (!d->hoveredCategory.isEmpty())
@@ -1159,14 +1188,15 @@ void KCategorizedView::dragMoveEvent(QDragMoveEvent *event)
 
     d->dragLeftViewport = false;
 
-    if ((viewMode() != KCategorizedView::IconMode) || !d->proxyModel ||
-        !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
-    {
 #if defined(DOLPHIN_DRAGANDDROP)
-        QAbstractItemView::dragMoveEvent(event);
+    QAbstractItemView::dragMoveEvent(event);
 #else
-        QListView::dragMoveEvent(event);
+    QListView::dragMoveEvent(event);
 #endif
+
+    if ((viewMode() != KCategorizedView::IconMode) || !d->proxyModel ||
+        !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+    {
         return;
     }