diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dolphindetailsview.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index 63498ed9d..ff4ce540f 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -227,11 +227,30 @@ void DolphinDetailsView::mouseMoveEvent(QMouseEvent* event) setSelection(selRect, QItemSelectionModel::Select); } - QTreeView::mouseMoveEvent(event); + // TODO: see comment at end of method + // QTreeView::mouseMoveEvent(event); + QAbstractItemView::mouseMoveEvent(event); updateElasticBand(); } else { - QTreeView::mouseMoveEvent(event); + // TODO: see comment at end of method + //QTreeView::mouseMoveEvent(event); + QAbstractItemView::mouseMoveEvent(event); } + + // The original implementation of QTreeView::mouseMoveEvent() looks like this (Qt4.4): + // + // void QTreeView::mouseMoveEvent(QMouseEvent *event) + // { + // Q_D(QTreeView); + // if (d->itemDecorationAt(event->pos()) == -1) // ### what about expanding/collapsing state ? + // QAbstractItemView::mouseMoveEvent(event); + // } + // + // This prevents that the signal 'entered()' is emitted when the mouse is above a decoration, + // although the hovered item has changed. The SelectionManager is connected to 'entered()' + // and assumes that the old item is selected. This is currently bypassed by skipping + // the base implementation and invoking QAbstractItemView::mouseMoveEvent() directly. + // Submitted a bug report to Trolltech, bug ID is still pending. } void DolphinDetailsView::mouseReleaseEvent(QMouseEvent* event) |
