From fe5c62ccbed16dfa7d937d4cdcba671ac03a9699 Mon Sep 17 00:00:00 2001 From: Kirill Kalishev Date: Tue, 9 Mar 2010 16:10:18 +0300 Subject: [PATCH] experimental dev commit: optionally do not focus app on startup --- .../openapi/wm/impl/IdeFrameImpl.java | 27 +++++++++++++++++++ .../src/misc/registry.properties | 1 + 2 files changed, 28 insertions(+) diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java index 437798bfb912..46ab77865013 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java @@ -33,6 +33,7 @@ import com.intellij.openapi.keymap.KeymapManager; import com.intellij.openapi.project.DumbAwareRunnable; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; +import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.wm.IdeFrame; import com.intellij.openapi.wm.ex.LayoutFocusTraversalPolicyExt; import com.intellij.openapi.wm.ex.StatusBarEx; @@ -84,6 +85,32 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider { new MnemonicHelper().register(this); myBalloonLayout = new BalloonLayout(myRootPane.getLayeredPane(), new Insets(8, 8, 8, 8)); + + if (!Registry.is("ide.windowSystem.focusAppOnStartup") && !isThereActiveFrame()) { + setFocusableWindowState(false); + } + + } + + private boolean isThereActiveFrame() { + Frame[] all = Frame.getFrames(); + for (Frame each : all) { + if (each.isActive()) { + return true; + } + } + + return false; + } + + @Override + public void show() { + super.show(); + SwingUtilities.invokeLater(new Runnable() { + public void run() { + setFocusableWindowState(true); + } + }); } /** diff --git a/platform/platform-resources-en/src/misc/registry.properties b/platform/platform-resources-en/src/misc/registry.properties index 3e416e34df55..07c58ae7873f 100644 --- a/platform/platform-resources-en/src/misc/registry.properties +++ b/platform/platform-resources-en/src/misc/registry.properties @@ -30,6 +30,7 @@ ide.consumeKnownToolkitBugs=true ide.windowSystem.hScrollChars=15 ide.windowSystem.vScrollChars=5 +ide.windowSystem.focusAppOnStartup=true ide.tree.yeildingUiUpdate=true ide.tree.showBusyIndicator=true