Commit 39d3437d authored by Ahmad Samir's avatar Ahmad Samir Committed by Tomaz Canabrava
Browse files

Fix crash when closing a tab using the close button

Looking at the crash backtraces from the bug reports, it seems this is what
happens, when you have two tabs open, then click the close button on the
non-current tab:
  - QTabBar::currentChanged() is emitted, the TerminalDisplay pointer is
    still not null at this point (the code checks for that)
  - TabbedViewContainer::currentTabChanged()
  - TabbedViewContainer::activeViewChanged()
  - ViewManager::activateView(), at this point the TerminalDisplay pointer
    could be null, which then crashes when we call Widget::setFocus()

BUG: 411962
FIXED-IN: 21.12
parent b0c23b49
......@@ -556,12 +556,12 @@ void ViewManager::focusAnotherTerminal(ViewSplitter *toplevelSplitter)
void ViewManager::activateView(TerminalDisplay *view)
{
Q_ASSERT(view != nullptr);
// focus the activated view, this will cause the SessionController
// to notify the world that the view has been focused and the appropriate UI
// actions will be plugged in.
view->setFocus(Qt::OtherFocusReason);
if (view) {
// focus the activated view, this will cause the SessionController
// to notify the world that the view has been focused and the appropriate UI
// actions will be plugged in.
view->setFocus(Qt::OtherFocusReason);
}
}
void ViewManager::splitLeftRight()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment