commit 7bdf372ecc3129eeb6299ae13331a354467a7000
Author: Daniel Ramoeller <d....@web.de>
Date:   Sun Feb 27 20:33:48 2022 +0100

    Properly reset on ESC key on LayoutBox/CategorizedCombo
    
    Fix for bug #12497.
---
 src/frontends/qt/CategorizedCombo.cpp |    2 ++
 src/frontends/qt/CategorizedCombo.h   |    2 ++
 src/frontends/qt/LayoutBox.cpp        |    2 ++
 src/frontends/qt/LayoutBox.h          |    1 +
 4 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/frontends/qt/CategorizedCombo.cpp 
b/src/frontends/qt/CategorizedCombo.cpp
index 1548ecf..c4005ac 100644
--- a/src/frontends/qt/CategorizedCombo.cpp
+++ b/src/frontends/qt/CategorizedCombo.cpp
@@ -370,6 +370,7 @@ void CategorizedCombo::Private::countCategories()
 
 void CategorizedCombo::showPopup()
 {
+       lastCurrentIndex_ = currentIndex();
        bool enabled = view()->updatesEnabled();
        view()->setUpdatesEnabled(false);
 
@@ -400,6 +401,7 @@ bool CategorizedCombo::eventFilter(QObject * o, QEvent * e)
        case Qt::Key_Escape:
                if (!modified && !d->filter_.isEmpty()) {
                        d->resetFilter();
+                       setCurrentIndex(lastCurrentIndex_);
                        return true;
                }
                break;
diff --git a/src/frontends/qt/CategorizedCombo.h 
b/src/frontends/qt/CategorizedCombo.h
index be351ff..9e03449 100644
--- a/src/frontends/qt/CategorizedCombo.h
+++ b/src/frontends/qt/CategorizedCombo.h
@@ -74,6 +74,8 @@ private:
        struct Private;
        ///
        Private * const d;
+       ///
+       int lastCurrentIndex_;
 };
 
 
diff --git a/src/frontends/qt/LayoutBox.cpp b/src/frontends/qt/LayoutBox.cpp
index 49d3086..5b15e98 100644
--- a/src/frontends/qt/LayoutBox.cpp
+++ b/src/frontends/qt/LayoutBox.cpp
@@ -401,6 +401,7 @@ void LayoutBox::Private::countCategories()
 
 void LayoutBox::showPopup()
 {
+       lastCurrentIndex_ = currentIndex();
        d->owner_.message(_("Enter characters to filter the layout list."));
 
        bool enabled = view()->updatesEnabled();
@@ -425,6 +426,7 @@ bool LayoutBox::eventFilter(QObject * o, QEvent * e)
        case Qt::Key_Escape:
                if (!modified && !d->filter_.isEmpty()) {
                        d->resetFilter();
+                       setCurrentIndex(lastCurrentIndex_);
                        return true;
                }
                break;
diff --git a/src/frontends/qt/LayoutBox.h b/src/frontends/qt/LayoutBox.h
index a3d174e..bbccb74 100644
--- a/src/frontends/qt/LayoutBox.h
+++ b/src/frontends/qt/LayoutBox.h
@@ -60,6 +60,7 @@ private:
        friend class LayoutItemDelegate;
        class Private;
        Private * const d;
+       int lastCurrentIndex_;
 };
 
 } // namespace frontend
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to