JBR-7594 Check for LWCToolkit in JBR TextInput API

This commit is contained in:
Nikita Tsarev
2024-09-05 11:16:26 +02:00
parent 8827281c82
commit cd5cad7154

View File

@@ -27,23 +27,28 @@ package sun.lwawt.macosx;
import com.jetbrains.exported.JBRApi;
import java.awt.*;
@JBRApi.Service
@JBRApi.Provides("TextInput")
public class JBRTextInputMacOS {
private EventListener listener;
JBRTextInputMacOS() {
var desc = (CInputMethodDescriptor) LWCToolkit.getLWCToolkit().getInputMethodAdapterDescriptor();
desc.textInputEventListener = new EventListener() {
public void handleSelectTextRangeEvent(SelectTextRangeEvent event) {
// This listener is called on the EDT
synchronized (JBRTextInputMacOS.this) {
if (listener != null) {
listener.handleSelectTextRangeEvent(event);
var toolkit = Toolkit.getDefaultToolkit();
if (toolkit instanceof LWCToolkit) {
var desc = (CInputMethodDescriptor) ((LWCToolkit) toolkit).getInputMethodAdapterDescriptor();
desc.textInputEventListener = new EventListener() {
public void handleSelectTextRangeEvent(SelectTextRangeEvent event) {
// This listener is called on the EDT
synchronized (JBRTextInputMacOS.this) {
if (listener != null) {
listener.handleSelectTextRangeEvent(event);
}
}
}
}
};
};
}
}
@JBRApi.Provides("TextInput.SelectTextRangeEvent")