diff --git a/src/assets/view/widgets/keyframewidget.cpp b/src/assets/view/widgets/keyframewidget.cpp index e53d8e2b687f0b36ead17f87bd6ab5f3e9793b21..3d26b82a585e4b8735886a5f9faa81a2c783cccf 100644 --- a/src/assets/view/widgets/keyframewidget.cpp +++ b/src/assets/view/widgets/keyframewidget.cpp @@ -98,9 +98,9 @@ KeyframeWidget::KeyframeWidget(std::shared_ptr model, QMode m_buttonApply->setIcon(QIcon::fromTheme(QStringLiteral("edit-paste"))); m_buttonApply->setToolTip(i18n("Apply value to selected keyframes")); m_buttonApply->setFocusPolicy(Qt::StrongFocus); - connect(qApp, &QApplication::focusChanged, [this](QWidget *old, QWidget *now) { + m_focusConnection = connect(qApp, &QApplication::focusChanged, [this](QWidget *old, QWidget *now) { if (now == m_buttonApply) { - if (old && old->parentWidget()) { + if (old && old->parentWidget() && isAncestorOf(old->parentWidget())) { m_lastFocusedParam = old->parentWidget()->objectName(); qDebug()<<"======= FROM PARENT: "<parentWidget()->objectName(); } @@ -241,6 +241,7 @@ KeyframeWidget::KeyframeWidget(std::shared_ptr model, QMode KeyframeWidget::~KeyframeWidget() { + QObject::disconnect( m_focusConnection ); delete m_keyframeview; delete m_buttonAddDelete; delete m_buttonPrevious; diff --git a/src/assets/view/widgets/keyframewidget.hpp b/src/assets/view/widgets/keyframewidget.hpp index 997aa027da242ea35f6751edbffa19b01334a1c8..d487209120db0580ebcb0b104e3afc42537dc973 100644 --- a/src/assets/view/widgets/keyframewidget.hpp +++ b/src/assets/view/widgets/keyframewidget.hpp @@ -87,6 +87,7 @@ private: QVBoxLayout *m_lay; QToolBar *m_toolbar; std::shared_ptr m_keyframes; + QMetaObject::Connection m_focusConnection; KeyframeView *m_keyframeview; KeyframeMonitorHelper *m_monitorHelper; QToolButton *m_buttonAddDelete;