diff options
| -rw-r--r-- | src/panels/information/informationpanel.cpp | 9 | ||||
| -rw-r--r-- | src/panels/information/informationpanel.h | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/panels/information/informationpanel.cpp b/src/panels/information/informationpanel.cpp index 8adb64ff0..03e048ae7 100644 --- a/src/panels/information/informationpanel.cpp +++ b/src/panels/information/informationpanel.cpp @@ -60,11 +60,13 @@ void InformationPanel::setSelection(const KFileItemList &selection) m_shownUrl = url(); showItemInfo(); } + m_isSelectionActive = false; m_infoTimer->stop(); } else { if ((count == 1) && !selection.first().url().isEmpty()) { m_urlCandidate = selection.first().url(); } + m_isSelectionActive = true; showItemInfo(); } } @@ -88,6 +90,8 @@ void InformationPanel::requestDelayedItemInfo(const KFileItem &item) cancelRequest(); + m_isSelectionActive = false; + m_hoveredItem = item; m_infoTimer->start(); } @@ -231,9 +235,10 @@ void InformationPanel::showItemInfo() } else { // The information for exactly one item should be shown KFileItem item; - if (!m_hoveredItem.isNull() && InformationPanelSettings::showHovered()) { + + if (!m_isSelectionActive && !m_hoveredItem.isNull() && InformationPanelSettings::showHovered()) { item = m_hoveredItem; - } else if (!m_selection.isEmpty()) { + } else if (m_isSelectionActive && !m_selection.isEmpty()) { Q_ASSERT(m_selection.count() == 1); item = m_selection.first(); } diff --git a/src/panels/information/informationpanel.h b/src/panels/information/informationpanel.h index eda70759a..44425bc93 100644 --- a/src/panels/information/informationpanel.h +++ b/src/panels/information/informationpanel.h @@ -147,6 +147,8 @@ private: KFileItem m_hoveredItem; KFileItemList m_selection; + bool m_isSelectionActive = false; + KIO::Job *m_folderStatJob; InformationPanelContent *m_content; |
