diff options
Diffstat (limited to 'src/views')
| -rw-r--r-- | src/views/dolphinview.cpp | 8 | ||||
| -rw-r--r-- | src/views/dolphinview.h | 1 | ||||
| -rw-r--r-- | src/views/tooltips/tooltipmanager.cpp | 4 |
3 files changed, 12 insertions, 1 deletions
diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index e677613ba..035d3dc55 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -101,6 +101,7 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) : m_scrollToCurrentItem(false), m_restoredContentsPosition(), m_selectedUrls(), + m_clearSelectionBeforeSelectingNewItems(false), m_versionControlObserver(0) { m_topLayout = new QVBoxLayout(this); @@ -1227,6 +1228,12 @@ void DolphinView::updateViewState() if (!m_selectedUrls.isEmpty()) { KItemListSelectionManager* selectionManager = m_container->controller()->selectionManager(); + + if (m_clearSelectionBeforeSelectingNewItems) { + selectionManager->clearSelection(); + m_clearSelectionBeforeSelectingNewItems = false; + } + QSet<int> selectedItems = selectionManager->selectedItems(); for (QList<KUrl>::iterator it = m_selectedUrls.begin(); it != m_selectedUrls.end(); ++it) { @@ -1544,6 +1551,7 @@ void DolphinView::markPastedUrlsAsSelected(const QMimeData* mimeData) destUrls << destination; } markUrlsAsSelected(destUrls); + m_clearSelectionBeforeSelectingNewItems = true; } void DolphinView::updateWritableState() diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 1feaf0f11..6d15ebf32 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -765,6 +765,7 @@ private: QPoint m_restoredContentsPosition; QList<KUrl> m_selectedUrls; // Used for making the view to remember selections after F5 + bool m_clearSelectionBeforeSelectingNewItems; VersionControlObserver* m_versionControlObserver; diff --git a/src/views/tooltips/tooltipmanager.cpp b/src/views/tooltips/tooltipmanager.cpp index d948bfd86..bd6948363 100644 --- a/src/views/tooltips/tooltipmanager.cpp +++ b/src/views/tooltips/tooltipmanager.cpp @@ -104,7 +104,9 @@ void ToolTipManager::hideToolTip() if (m_fileMetaDataToolTip) { m_fileMetaDataToolTip->hide(); - delete m_fileMetaDataToolTip; + // Do not delete the tool tip immediately to prevent crashes when + // QCoreApplication tries to deliver an 'Enter' event to it, see bug 310579. + m_fileMetaDataToolTip->deleteLater(); m_fileMetaDataToolTip = 0; } } |
