Activate window of editor when setting focus on it.

Both fixes a bug with Qt4 and is needed when having multiple toplevel
editor windows.

Task-number: QTCREATORBUG-8735
Change-Id: I151164a6ad00beb92cb241e581d381a9534733f8
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
This commit is contained in:
Eike Ziller
2013-04-02 12:34:19 +02:00
parent 7dce2f9899
commit 46dcfc30a4

View File

@@ -534,8 +534,10 @@ void EditorManager::setCurrentView(Core::Internal::SplitterOrView *view)
if (view) if (view)
view->update(); view->update();
if (view && !view->editor()) if (view && !view->editor()) {
view->setFocus(); view->setFocus();
view->activateWindow();
}
} }
Core::Internal::SplitterOrView *EditorManager::currentSplitterOrView() const Core::Internal::SplitterOrView *EditorManager::currentSplitterOrView() const
@@ -1073,8 +1075,10 @@ Core::IEditor *EditorManager::activateEditor(Core::Internal::EditorView *view, C
setCurrentEditor(editor, (flags & IgnoreNavigationHistory)); setCurrentEditor(editor, (flags & IgnoreNavigationHistory));
if (flags & ModeSwitch) if (flags & ModeSwitch)
switchToPreferedMode(); switchToPreferedMode();
if (isVisible()) if (isVisible()) {
editor->widget()->setFocus(); editor->widget()->setFocus();
editor->widget()->activateWindow();
}
} }
return editor; return editor;
} }
@@ -2254,6 +2258,7 @@ void EditorManager::gotoOtherSplit()
if (IEditor *editor = view->editor()) { if (IEditor *editor = view->editor()) {
setCurrentEditor(editor, true); setCurrentEditor(editor, true);
editor->widget()->setFocus(); editor->widget()->setFocus();
editor->widget()->activateWindow();
} else { } else {
setCurrentView(view); setCurrentView(view);
} }