mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 23:39:07 +07:00
GTW-7827 3Set Korean inputs are garbled
GitOrigin-RevId: 487c051dc2f312bad8e127f1eb45cd52a2dbc74a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
3ea2f70e1e
commit
6787cfc4e6
@@ -23,7 +23,7 @@ import com.intellij.platform.ide.bootstrap.startApplication
|
||||
import com.intellij.platform.impl.toolkit.IdeFontManager
|
||||
import com.intellij.platform.impl.toolkit.IdeGraphicsEnvironment
|
||||
import com.intellij.platform.impl.toolkit.IdeToolkit
|
||||
import com.intellij.util.ui.JBHtmlEditorKit
|
||||
import com.intellij.util.ui.UIUtil
|
||||
import com.jetbrains.JBR
|
||||
import kotlinx.coroutines.*
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
@@ -217,7 +217,7 @@ private fun initLux() {
|
||||
@Suppress("SpellCheckingInspection")
|
||||
System.setProperty("sun.font.fontmanager", IdeFontManager::class.java.canonicalName)
|
||||
|
||||
JBHtmlEditorKit.DISABLE_TEXT_LAYOUT = true
|
||||
UIUtil.DISABLE_LAYOUT_IN_TEXT_COMPONENTS = true
|
||||
}
|
||||
|
||||
private fun addBootstrapTiming(name: String, startupTimings: MutableList<Any>) {
|
||||
|
||||
@@ -8479,6 +8479,7 @@ c:com.intellij.ui.components.JBTextField
|
||||
- <init>(I):V
|
||||
- <init>(java.lang.String):V
|
||||
- <init>(java.lang.String,I):V
|
||||
- p:createDefaultModel():javax.swing.text.Document
|
||||
- getAccessibleContext():javax.accessibility.AccessibleContext
|
||||
- p:getComponentGraphics(java.awt.Graphics):java.awt.Graphics
|
||||
- getEmptyText():com.intellij.util.ui.StatusText
|
||||
|
||||
@@ -12,6 +12,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import javax.accessibility.AccessibleContext;
|
||||
import javax.swing.*;
|
||||
import javax.swing.plaf.TextUI;
|
||||
import javax.swing.text.Document;
|
||||
import java.awt.*;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.Objects;
|
||||
@@ -120,6 +121,13 @@ public class JBTextField extends JTextField implements ComponentWithEmptyText, T
|
||||
return accessibleContext;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Document createDefaultModel() {
|
||||
Document model = super.createDefaultModel();
|
||||
UIUtil.disableTextLayoutIfNeeded(model);
|
||||
return model;
|
||||
}
|
||||
|
||||
private class AccessibleJBTextField extends AccessibleJTextField {
|
||||
@Override
|
||||
public String getAccessibleDescription() {
|
||||
|
||||
@@ -18,7 +18,6 @@ import java.awt.*;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
@@ -28,10 +27,6 @@ import java.util.stream.StreamSupport;
|
||||
public class JBHtmlEditorKit extends HTMLEditorKit {
|
||||
private static final Logger LOG = Logger.getInstance(JBHtmlEditorKit.class);
|
||||
|
||||
@SuppressWarnings("StaticNonFinalField")
|
||||
@ApiStatus.Internal
|
||||
public static boolean DISABLE_TEXT_LAYOUT = false;
|
||||
|
||||
private final @NotNull ViewFactory myViewFactory;
|
||||
private final @NotNull StyleSheet myStyle;
|
||||
|
||||
@@ -217,14 +212,7 @@ public class JBHtmlEditorKit extends HTMLEditorKit {
|
||||
private final class OurDocument extends HTMLDocument {
|
||||
private OurDocument(StyleSheet styles) {
|
||||
super(styles);
|
||||
if (DISABLE_TEXT_LAYOUT) {
|
||||
setDocumentProperties(new Hashtable<>(2) {
|
||||
@Override
|
||||
public synchronized Object get(Object key) {
|
||||
return "i18n".equals(key) ? Boolean.FALSE : super.get(key);
|
||||
}
|
||||
});
|
||||
}
|
||||
UIUtil.disableTextLayoutIfNeeded(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3346,4 +3346,24 @@ public final class UIUtil {
|
||||
GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
|
||||
return gd.isFullScreenSupported();
|
||||
}
|
||||
|
||||
@SuppressWarnings("StaticNonFinalField")
|
||||
@ApiStatus.Internal
|
||||
public static boolean DISABLE_LAYOUT_IN_TEXT_COMPONENTS = false;
|
||||
|
||||
/**
|
||||
* Disables performing text layout for 'complex' text in the document, if configured globally.
|
||||
* Should be called before the document is used for anything, i.e., right after construction.
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
public static void disableTextLayoutIfNeeded(@NotNull Document document) {
|
||||
if (DISABLE_LAYOUT_IN_TEXT_COMPONENTS && document instanceof AbstractDocument ad) {
|
||||
ad.setDocumentProperties(new Hashtable<>(2) {
|
||||
@Override
|
||||
public synchronized Object get(Object key) {
|
||||
return "i18n".equals(key) ? Boolean.FALSE : super.get(key);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user