]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/selectionmanager.cpp
Fix issue that an old preview might be shown in a tooltip. Cool bug-id btw ;-)
[dolphin.git] / src / views / selectionmanager.cpp
index 0d3efae09b6aaa081d1bfd8f325cd29cb947f29a..ac5f1c939cb8a35d8973e80fe9f3c669a72755e6 100644 (file)
@@ -49,12 +49,27 @@ SelectionManager::SelectionManager(QAbstractItemView* parent) :
     m_toggle->hide();
     connect(m_toggle, SIGNAL(clicked(bool)),
             this, SLOT(setItemSelected(bool)));
+
+    m_view->viewport()->installEventFilter(this);
 }
 
 SelectionManager::~SelectionManager()
 {
 }
 
+bool SelectionManager::eventFilter(QObject* watched, QEvent* event)
+{
+    Q_ASSERT(watched == m_view->viewport());
+    if (event->type() == QEvent::MouseButtonPress) {
+        // Set the toggle invisible, if a mouse button has been pressed
+        // outside the toggle boundaries. This e.g. assures, that the toggle
+        // gets invisible during dragging items.
+        const QRect toggleBounds(m_toggle->mapToGlobal(QPoint(0, 0)), m_toggle->size());
+        m_toggle->setVisible(toggleBounds.contains(QCursor::pos()));
+    }
+    return QObject::eventFilter(watched, event);
+}
+
 void SelectionManager::reset()
 {
     m_toggle->reset();