Add WindowManager::getLastSelectedWindow() to replace getMainWindow() (#4816)
1. No longer can return a nullptr if no window was ever focused 2. When closing a window, it will no longer return an invalid pointer
This commit is contained in:
@@ -103,8 +103,10 @@ bool Window::event(QEvent *event)
|
||||
{
|
||||
switch (event->type())
|
||||
{
|
||||
case QEvent::WindowActivate:
|
||||
case QEvent::WindowActivate: {
|
||||
getApp()->windows->selectedWindow_ = this;
|
||||
break;
|
||||
}
|
||||
|
||||
case QEvent::WindowDeactivate: {
|
||||
auto page = this->notebook_->getOrAddSelectedPage();
|
||||
@@ -142,6 +144,11 @@ void Window::closeEvent(QCloseEvent *)
|
||||
app->windows->closeAll();
|
||||
}
|
||||
|
||||
// Ensure selectedWindow_ is never an invalid pointer.
|
||||
// WindowManager will return the main window if no window is pointed to by
|
||||
// `selectedWindow_`.
|
||||
getApp()->windows->selectedWindow_ = nullptr;
|
||||
|
||||
this->closed.invoke();
|
||||
|
||||
if (this->type_ == WindowType::Main)
|
||||
|
||||
Reference in New Issue
Block a user