mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
work with stable focus state when restarting from deeply nested plugin update dialog (IDEA-172247)
This commit is contained in:
@@ -18,7 +18,7 @@ package com.intellij.ide.plugins;
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ApplicationNamesInfo;
|
||||
import com.intellij.openapi.application.TransactionGuard;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.options.newEditor.SettingsDialog;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.ui.GraphicsConfig;
|
||||
@@ -292,13 +292,13 @@ public class PluginHeaderPanel {
|
||||
if (dialog != null && dialog.isModal()) {
|
||||
dialog.close(DialogWrapper.OK_EXIT_CODE);
|
||||
}
|
||||
TransactionGuard.getInstance().submitTransactionLater(ApplicationManager.getApplication(), () -> {
|
||||
IdeFocusManager.getGlobalInstance().doWhenFocusSettlesDown(() -> {
|
||||
DialogWrapper settings = DialogWrapper.findInstance(IdeFocusManager.findInstance().getFocusOwner());
|
||||
if (settings instanceof SettingsDialog) {
|
||||
((SettingsDialog)settings).doOKAction();
|
||||
}
|
||||
ApplicationManager.getApplication().restart();
|
||||
});
|
||||
}, ModalityState.current());
|
||||
break;
|
||||
}
|
||||
setPlugin(myPlugin);
|
||||
|
||||
Reference in New Issue
Block a user