From 337644f7024391b10e97837478e938178c2e2f77 Mon Sep 17 00:00:00 2001 From: Matthew Griffin <45285214+matthew-griffin@users.noreply.github.com> Date: Mon, 2 Sep 2019 09:24:50 +0100 Subject: [PATCH] Cancel any edit in progress when wxTreeCtrl is scrolled Otherwise the editor could be scrolled out of view, confusing the user. Closes https://github.com/wxWidgets/wxWidgets/pull/1522 --- src/qt/treectrl.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/qt/treectrl.cpp b/src/qt/treectrl.cpp index 6b1676f724..84213cec7f 100644 --- a/src/qt/treectrl.cpp +++ b/src/qt/treectrl.cpp @@ -23,6 +23,7 @@ #include #include +#include #include namespace @@ -142,6 +143,8 @@ public: this, &wxQTreeWidget::OnItemCollapsed); connect(this, &QTreeWidget::itemExpanded, this, &wxQTreeWidget::OnItemExpanded); + connect(verticalScrollBar(), &QScrollBar::valueChanged, + this, &wxQTreeWidget::OnTreeScrolled); setItemDelegate(&m_item_delegate); setDragEnabled(true); @@ -438,6 +441,12 @@ private: EmitEvent(expandedEvent); } + void OnTreeScrolled(int) + { + if ( GetEditControl() != NULL ) + closeEditor(GetEditControl()->GetHandle(), QAbstractItemDelegate::RevertModelCache); + } + void tryStartDrag(const QMouseEvent *event) { wxEventType command = event->buttons() & Qt::RightButton