mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-106716 Don't steal focus
This commit is contained in:
@@ -19,6 +19,8 @@ import com.intellij.openapi.ui.popup.util.PopupUtil;
|
||||
import com.intellij.openapi.util.ActionCallback;
|
||||
import com.intellij.openapi.util.ActiveRunnable;
|
||||
import com.intellij.openapi.util.Expirable;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -149,8 +151,26 @@ public abstract class FocusCommand extends ActiveRunnable implements Expirable {
|
||||
@NotNull
|
||||
public final ActionCallback run() {
|
||||
if (myToFocus != null) {
|
||||
if (!myToFocus.requestFocusInWindow()) {
|
||||
myToFocus.requestFocus();
|
||||
if (Registry.is("actionSystem.doNotStealFocus")) {
|
||||
Window topWindow = SwingUtilities.windowForComponent(myToFocus);
|
||||
UIUtil.setAutoRequestFocus(topWindow, topWindow.isActive());
|
||||
while (topWindow.getOwner() != null) {
|
||||
topWindow = SwingUtilities.windowForComponent(topWindow);
|
||||
UIUtil.setAutoRequestFocus(topWindow, topWindow.isActive());
|
||||
}
|
||||
|
||||
if (topWindow.isActive()) {
|
||||
if (!myToFocus.requestFocusInWindow()) {
|
||||
myToFocus.requestFocus();
|
||||
}
|
||||
} else {
|
||||
myToFocus.requestFocusInWindow();
|
||||
}
|
||||
|
||||
} else {
|
||||
if (!myToFocus.requestFocusInWindow()) {
|
||||
myToFocus.requestFocus();
|
||||
}
|
||||
}
|
||||
}
|
||||
clear();
|
||||
|
||||
@@ -60,6 +60,7 @@ public class Splash extends JDialog implements StartupProgress {
|
||||
setUndecorated(true);
|
||||
setResizable(false);
|
||||
setFocusableWindowState(false);
|
||||
UIUtil.setAutoRequestFocus(this, false);
|
||||
|
||||
Icon originalImage = IconLoader.getIcon(imageName);
|
||||
myImage = new SplashImage(originalImage, textColor);
|
||||
@@ -79,7 +80,6 @@ public class Splash extends JDialog implements StartupProgress {
|
||||
setSize(size);
|
||||
pack();
|
||||
setLocationRelativeTo(null);
|
||||
UIUtil.setAutoRequestFocus(this, false);
|
||||
}
|
||||
|
||||
public Splash(ApplicationInfoEx info) {
|
||||
|
||||
@@ -29,6 +29,7 @@ actionSystem.mac.screenMenuNotUpdatedFix=false
|
||||
actionSystem.keyGestures.enabled=false
|
||||
actionSystem.keyGestureDblClickTime=500
|
||||
actionSystem.suspendFocusTransferIfApplicationInactive=true
|
||||
actionSystem.doNotStealFocus=false
|
||||
actionSystem.noContextComponentWhileFocusTransfer=true
|
||||
actionSystem.secondKeystrokeTimeout=2000
|
||||
actionSystem.secondKeystrokeAutoPopupEnabled=false
|
||||
|
||||
Reference in New Issue
Block a user