]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kcategorizedview.cpp
drag and drop fixes for the column view (implied a signal changed which affected...
[dolphin.git] / src / kcategorizedview.cpp
index 7bc0055aed7b189527f08f1dd233be796b61c579..026f56c2437a1f62ea1b5f41f15fe47ab3747e14 100644 (file)
@@ -357,10 +357,23 @@ void KCategorizedView::Private::drawNewCategory(const QModelIndex &index,
     QStyleOption optionCopy = option;
     const QString category = proxyModel->data(index, KCategorizedSortFilterProxyModel::CategoryRole).toString();
 
+    optionCopy.state &= ~QStyle::State_Selected;
+
     if ((category == hoveredCategory) && !mouseButtonPressed)
     {
         optionCopy.state |= QStyle::State_MouseOver;
     }
+    else if ((category == hoveredCategory) && mouseButtonPressed)
+    {
+        QPoint initialPressPosition = listView->viewport()->mapFromGlobal(QCursor::pos());
+        initialPressPosition.setY(initialPressPosition.y() + listView->verticalOffset());
+        initialPressPosition.setX(initialPressPosition.x() + listView->horizontalOffset());
+
+        if (initialPressPosition == this->initialPressPosition)
+        {
+            optionCopy.state |= QStyle::State_Selected;
+        }
+    }
 
     categoryDrawer->drawCategory(index,
                                  sortRole,
@@ -891,6 +904,8 @@ void KCategorizedView::mousePressEvent(QMouseEvent *event)
     }
 
     QListView::mousePressEvent(event);
+
+    viewport()->update(d->categoryVisualRect(d->hoveredCategory));
 }
 
 void KCategorizedView::mouseReleaseEvent(QMouseEvent *event)