Fix invalid call on destroyed object

Part of !209
wilder
Martin T. H. Sandsmark 6 years ago committed by Kurt Hindenburg
parent 9d75f9edc7
commit 914ac12087
  1. 8
      src/CompositeWidgetFocusWatcher.cpp
  2. 2
      src/terminalDisplay/TerminalDisplay.cpp

@ -35,10 +35,14 @@ CompositeWidgetFocusWatcher::CompositeWidgetFocusWatcher(QWidget *compositeWidge
bool CompositeWidgetFocusWatcher::eventFilter(QObject *watched, QEvent *event)
{
Q_UNUSED(watched)
auto *focusEvent = static_cast<QFocusEvent *>(event);
switch(event->type()) {
case QEvent::Close:
case QEvent::DeferredDelete:
case QEvent::Destroy:
removeEventFilter(watched);
disconnect(this, &CompositeWidgetFocusWatcher::compositeFocusChanged, watched, nullptr);
break;
case QEvent::FocusIn:
emit compositeFocusChanged(true);
break;

@ -577,7 +577,7 @@ TerminalDisplay::TerminalDisplay(QWidget* parent)
new AutoScrollHandler(this);
// Keep this last
auto focusWatcher = new CompositeWidgetFocusWatcher(this, this);
CompositeWidgetFocusWatcher *focusWatcher = new CompositeWidgetFocusWatcher(this, this);
connect(focusWatcher, &CompositeWidgetFocusWatcher::compositeFocusChanged,
this, [this](bool focused) {_hasCompositeFocus = focused;});
connect(focusWatcher, &CompositeWidgetFocusWatcher::compositeFocusChanged,

Loading…
Cancel
Save