]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kitemlistcontainer.cpp
Fix crash when expanding/closing a sub-tree
[dolphin.git] / src / kitemviews / kitemlistcontainer.cpp
index ec759bdb32a26bcddb39c3b11c4c5b3e81789ed9..c68af6d94f0584667caaa6fd38ae3f6834021ae9 100644 (file)
@@ -120,7 +120,14 @@ void KItemListContainer::scrollContentsBy(int dx, int dy)
         return;
     }
 
+    const QScrollBar* scrollBar = (view->scrollOrientation() == Qt::Vertical)
+                                  ? verticalScrollBar() : horizontalScrollBar();
     const qreal currentOffset = view->offset();
+    if (static_cast<int>(currentOffset) == scrollBar->value()) {
+        // The current offset is already synchronous to the scrollbar
+        return;
+    }
+
     qreal offsetDiff = (view->scrollOrientation() == Qt::Vertical) ? dy : dx;
 
     const bool animRunning = (m_smoothScrollingAnimation->state() == QAbstractAnimation::Running);
@@ -192,7 +199,13 @@ bool KItemListContainer::eventFilter(QObject* obj, QEvent* event)
 
 void KItemListContainer::wheelEvent(QWheelEvent* event)
 {
+    if (event->modifiers().testFlag(Qt::ControlModifier)) {
+        event->ignore();
+        return;
+    }
+
     KItemListView* view = m_controller->view();
+    
     if (!view || event->orientation() != view->scrollOrientation()) {
         return;
     }