X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/99271699f305de4ad25a8c2a6dd7e7307cb61af7..f9beadde758426f1641bd3d8c1367ee13baf6023:/src/dolphincolumnwidget.cpp diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp index a9b0b8244..d7d8bb500 100644 --- a/src/dolphincolumnwidget.cpp +++ b/src/dolphincolumnwidget.cpp @@ -55,6 +55,7 @@ DolphinColumnWidget::DolphinColumnWidget(QWidget* parent, m_active(true), m_view(columnView), m_selectionManager(0), + m_autoScroller(0), m_url(url), m_childUrl(), m_font(), @@ -78,7 +79,7 @@ DolphinColumnWidget::DolphinColumnWidget(QWidget* parent, setVerticalScrollMode(QListView::ScrollPerPixel); setHorizontalScrollMode(QListView::ScrollPerPixel); - new DolphinViewAutoScroller(this); + m_autoScroller = new DolphinViewAutoScroller(this); // apply the column mode settings to the widget const ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); @@ -177,16 +178,18 @@ void DolphinColumnWidget::setDecorationSize(const QSize& size) void DolphinColumnWidget::setActive(bool active) { - if (m_active == active) { - return; + if (active && (m_view->focusProxy() != this)) { + m_view->setFocusProxy(this); } - m_active = active; + if (m_active != active) { + m_active = active; - if (active) { - activate(); - } else { - deactivate(); + if (active) { + activate(); + } else { + deactivate(); + } } } @@ -450,7 +453,7 @@ void DolphinColumnWidget::selectionChanged(const QItemSelection& selected, const void DolphinColumnWidget::currentChanged(const QModelIndex& current, const QModelIndex& previous) { QListView::currentChanged(current, previous); - if (current.isValid()) { + if (current.isValid() && !m_autoScroller->isActive()) { scrollTo(current); } }