JBR-7594 Check for LWCToolkit in JBR TextInput API

(cherry picked from commit 3c1fd1c3e6)
This commit is contained in:
Nikita Tsarev
2024-09-05 11:16:26 +02:00
committed by jbrbot
parent 3d2da63ada
commit 5f62bde7ce

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")