]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kcategorizedview.cpp
Revert the whole code regarding the discussed issue. Columns view still show the...
[dolphin.git] / src / kcategorizedview.cpp
index d612f4b1c0597635730788098deb56a0d04fbbcb..dae4f912162a3c42db89d1045c67d853c10ed228 100644 (file)
@@ -662,8 +662,6 @@ QModelIndex KCategorizedView::indexAt(const QPoint &point) const
         index = item[0];
     }
 
-    d->hovered = index;
-
     return index;
 }
 
@@ -744,7 +742,10 @@ void KCategorizedView::paintEvent(QPaintEvent *event)
                 option.state |= QStyle::State_Editing;
         }
 
-        if ((index == d->hovered) && !d->mouseButtonPressed && (this->state() != QAbstractItemView::DraggingState))
+        // we are only interested to give the mouse over feedback when no
+        // dragging is happening (ereslibre)
+        if ((index == d->hovered) && !d->mouseButtonPressed &&
+            (this->state() == QAbstractItemView::NoState))
             option.state |= QStyle::State_MouseOver;
         else
             option.state &= ~QStyle::State_MouseOver;
@@ -986,6 +987,17 @@ void KCategorizedView::mouseMoveEvent(QMouseEvent *event)
         return;
     }
 
+    QModelIndexList item = d->intersectionSet(QRect(event->pos(), event->pos()));
+
+    if (item.count() == 1)
+    {
+        d->hovered = item[0];
+    }
+    else
+    {
+        d->hovered = QModelIndex();
+    }
+
     const QString previousHoveredCategory = d->hoveredCategory;
 
     d->mousePosition = event->pos();
@@ -1029,6 +1041,8 @@ void KCategorizedView::mouseMoveEvent(QMouseEvent *event)
         }
 
         rect = QRect(start, end).intersected(viewport()->rect().adjusted(-16, -16, 16, 16));
+
+        viewport()->update();
     }
 }
 
@@ -1145,14 +1159,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;
     }