diff options
Diffstat (limited to 'src/Authoring/Studio/Application/FilterVariantsDlg.cpp')
-rw-r--r-- | src/Authoring/Studio/Application/FilterVariantsDlg.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/Authoring/Studio/Application/FilterVariantsDlg.cpp b/src/Authoring/Studio/Application/FilterVariantsDlg.cpp index d6a47b6d..8a451e9a 100644 --- a/src/Authoring/Studio/Application/FilterVariantsDlg.cpp +++ b/src/Authoring/Studio/Application/FilterVariantsDlg.cpp @@ -34,11 +34,13 @@ #include <QtCore/qtimer.h> #include <QtQml/qqmlcontext.h> -FilterVariantsDlg::FilterVariantsDlg(QWidget *parent, QAction *action, int actionSize) +FilterVariantsDlg::FilterVariantsDlg(QWidget *parent, QAction *action, int actionSize, + QWidget *actionWidget) : QQuickWidget(parent) , m_model(new FilterVariantsModel(m_variantsFilter, this)) , m_action(action) , m_actionSize(actionSize) + , m_actionWidget(actionWidget) { setWindowTitle(tr("Filter variants")); QTimer::singleShot(0, this, &FilterVariantsDlg::initialize); @@ -90,8 +92,11 @@ void FilterVariantsDlg::showEvent(QShowEvent *event) void FilterVariantsDlg::focusOutEvent(QFocusEvent *e) { QQuickWidget::focusOutEvent(e); - m_action->setChecked(false); - QTimer::singleShot(0, this, &QQuickWidget::close); + + if (!m_actionWidget->underMouse()) { + m_action->setChecked(false); + QTimer::singleShot(0, this, &QQuickWidget::close); + } } void FilterVariantsDlg::keyPressEvent(QKeyEvent *e) |