diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index 1dbdeb5d5d..97358d18dd 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -952,7 +952,7 @@ void MainWindow::onWindowActivated(QWidget* w) if (!w) return; MDIView* view = dynamic_cast(w->widget()); #else - MDIView* view = dynamic_cast(w); + MDIView* view = dynamic_cast(w); #endif // Even if windowActivated() signal is emitted mdi doesn't need to be a top-level window. @@ -1625,6 +1625,18 @@ void MainWindow::changeEvent(QEvent *e) Workbench* wb = WorkbenchManager::instance()->active(); if (wb) wb->retranslate(); } + else if (e->type() == QEvent::ActivationChange) { + if (isActiveWindow()) { + QMdiSubWindow* mdi = d->mdiArea->currentSubWindow(); + if (mdi) { + MDIView* view =dynamic_cast(mdi->widget()); + if (getMainWindow()->activeWindow() != view) { + d->activeView = view; + Application::Instance->viewActivated(view); + } + } + } + } else { QMainWindow::changeEvent(e); }