mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
+2
-3
@@ -25,7 +25,6 @@ import com.intellij.openapi.util.ActionCallback;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.TimedOutCallback;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.wm.IdeFocusManager;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.InputEvent;
|
||||
@@ -76,7 +75,7 @@ public class ActionCommand extends TypeCommand {
|
||||
|
||||
final KeyStroke finalStroke = stroke;
|
||||
|
||||
IdeFocusManager.getGlobalInstance().doWhenFocusSettlesDown(() -> {
|
||||
inWriteSafeContext(() -> {
|
||||
final Ref<AnActionListener> listener = new Ref<>();
|
||||
listener.set(new AnActionListener.Adapter() {
|
||||
|
||||
@@ -99,7 +98,7 @@ public class ActionCommand extends TypeCommand {
|
||||
am.addAnActionListener(listener.get());
|
||||
|
||||
context.runPooledThread(() -> type(context.getRobot(), finalStroke));
|
||||
}, ModalityState.current());
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
+2
-4
@@ -16,11 +16,9 @@
|
||||
package com.intellij.openapi.ui.playback.commands;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.ui.TypingTarget;
|
||||
import com.intellij.openapi.ui.playback.PlaybackContext;
|
||||
import com.intellij.openapi.util.ActionCallback;
|
||||
import com.intellij.openapi.wm.IdeFocusManager;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -40,14 +38,14 @@ public class AlphaNumericTypeCommand extends TypeCommand {
|
||||
protected ActionCallback type(final PlaybackContext context, final String text) {
|
||||
final ActionCallback result = new ActionCallback();
|
||||
|
||||
IdeFocusManager.getGlobalInstance().doWhenFocusSettlesDown(() -> {
|
||||
inWriteSafeContext(() -> {
|
||||
TypingTarget typingTarget = findTarget(context);
|
||||
if (typingTarget != null) {
|
||||
typingTarget.type(text).doWhenDone(result.createSetDoneRunnable()).doWhenRejected(() -> typeByRobot(context.getRobot(), text).notify(result));
|
||||
} else {
|
||||
typeByRobot(context.getRobot(), text).notify(result);
|
||||
}
|
||||
}, ModalityState.current());
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
+2
-4
@@ -16,12 +16,10 @@
|
||||
package com.intellij.openapi.ui.playback.commands;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.ui.TypingTarget;
|
||||
import com.intellij.openapi.ui.playback.PlaybackContext;
|
||||
import com.intellij.openapi.util.ActionCallback;
|
||||
import com.intellij.openapi.util.Couple;
|
||||
import com.intellij.openapi.wm.IdeFocusManager;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
@@ -61,14 +59,14 @@ public class KeyCodeTypeCommand extends AlphaNumericTypeCommand {
|
||||
final ActionCallback result = new ActionCallback();
|
||||
|
||||
|
||||
IdeFocusManager.getGlobalInstance().doWhenFocusSettlesDown(() -> {
|
||||
inWriteSafeContext(() -> {
|
||||
TypingTarget typingTarget = findTarget(context);
|
||||
if (typingTarget != null) {
|
||||
typingTarget.type(unicode).doWhenDone(result.createSetDoneRunnable()).doWhenRejected(() -> typeCodes(context, context.getRobot(), codes).notify(result));
|
||||
} else {
|
||||
typeCodes(context, context.getRobot(), codes).notify(result);
|
||||
}
|
||||
}, ModalityState.current());
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,10 @@
|
||||
*/
|
||||
package com.intellij.openapi.ui.playback.commands;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.wm.IdeFocusManager;
|
||||
import org.intellij.lang.annotations.JdkConstants;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -102,4 +105,11 @@ public abstract class TypeCommand extends AbstractCommand {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static void inWriteSafeContext(Runnable runnable) {
|
||||
ModalityState modality = ModalityState.current();
|
||||
ApplicationManager.getApplication().invokeLater(
|
||||
() -> IdeFocusManager.getGlobalInstance().doWhenFocusSettlesDown(runnable, modality),
|
||||
modality);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user