diff --git a/platform/editor-ui-api/api-dump-experimental.txt b/platform/editor-ui-api/api-dump-experimental.txt index 34ad9a81f133..e0dd589b03b7 100644 --- a/platform/editor-ui-api/api-dump-experimental.txt +++ b/platform/editor-ui-api/api-dump-experimental.txt @@ -143,6 +143,8 @@ f:com.intellij.openapi.actionSystem.Presentation com.intellij.openapi.editor.EditorSettings - *a:getCaretEasing():com.intellij.openapi.editor.EditorSettings$CaretEasing - *a:isAnimatedCaret():Z +- *a:isSmoothCaretBlinking():Z +- *a:setSmoothCaretBlinking(Z):V *e:com.intellij.openapi.editor.EditorSettings$CaretEasing - java.lang.Enum - sf:EASE:com.intellij.openapi.editor.EditorSettings$CaretEasing diff --git a/platform/editor-ui-api/src/com/intellij/openapi/editor/EditorSettings.java b/platform/editor-ui-api/src/com/intellij/openapi/editor/EditorSettings.java index 2e039d27f583..673cd56737c7 100644 --- a/platform/editor-ui-api/src/com/intellij/openapi/editor/EditorSettings.java +++ b/platform/editor-ui-api/src/com/intellij/openapi/editor/EditorSettings.java @@ -126,6 +126,11 @@ public interface EditorSettings { int getCaretBlinkPeriod(); void setCaretBlinkPeriod(int blinkPeriod); + @ApiStatus.Experimental + boolean isSmoothCaretBlinking(); + @ApiStatus.Experimental + void setSmoothCaretBlinking(boolean smoothCaretBlinking); + boolean isBlockCursor(); void setBlockCursor(boolean blockCursor); diff --git a/platform/ide-core-impl/api-dump-experimental.txt b/platform/ide-core-impl/api-dump-experimental.txt index 014cb8eb8a26..c5d29f866dc4 100644 --- a/platform/ide-core-impl/api-dump-experimental.txt +++ b/platform/ide-core-impl/api-dump-experimental.txt @@ -6,14 +6,18 @@ c:com.intellij.openapi.editor.ex.EditorSettingsExternalizable - com.intellij.openapi.components.PersistentStateComponent - *:getCaretEasing():com.intellij.openapi.editor.EditorSettings$CaretEasing - *:isAnimatedCaret():Z +- *:isSmoothBlinkCaret():Z - *:setAnimatedCaret(Z):V - *:setCaretEasing(com.intellij.openapi.editor.EditorSettings$CaretEasing):V +- *:setSmoothBlinkCaret(Z):V f:com.intellij.openapi.editor.ex.EditorSettingsExternalizable$OptionSet - *:CARET_EASING:com.intellij.openapi.editor.EditorSettings$CaretEasing - *:IS_ANIMATED_CARET:Z +- *:IS_SMOOTH_CARET_BLINKING:Z f:com.intellij.openapi.editor.ex.EditorSettingsExternalizable$PropNames - *sf:PROP_CARET_EASING:java.lang.String - *sf:PROP_IS_ANIMATED_CARET:java.lang.String +- *sf:PROP_IS_SMOOTH_CARET_BLINKING:java.lang.String com.intellij.openapi.fileEditor.impl.EditorTabColorProvider - com.intellij.openapi.project.PossiblyDumbAware - *:getEditorTabForegroundColor(com.intellij.openapi.project.Project,com.intellij.openapi.vfs.VirtualFile):com.intellij.openapi.editor.colors.ColorKey diff --git a/platform/ide-core-impl/src/com/intellij/openapi/editor/ex/EditorSettingsExternalizable.java b/platform/ide-core-impl/src/com/intellij/openapi/editor/ex/EditorSettingsExternalizable.java index 71b4d3b88e32..1e06f028111e 100644 --- a/platform/ide-core-impl/src/com/intellij/openapi/editor/ex/EditorSettingsExternalizable.java +++ b/platform/ide-core-impl/src/com/intellij/openapi/editor/ex/EditorSettingsExternalizable.java @@ -75,6 +75,7 @@ public class EditorSettingsExternalizable implements PersistentStateComponent refresh(::myIsCaretInsideTabs) EditorSettingsExternalizable.PropNames.PROP_IS_CARET_BLINKING -> refresh(::myIsCaretBlinking) EditorSettingsExternalizable.PropNames.PROP_CARET_BLINKING_PERIOD -> refresh(::myCaretBlinkingPeriod) + EditorSettingsExternalizable.PropNames.PROP_IS_SMOOTH_CARET_BLINKING -> refresh(::myIsSmoothCaretBlinking) EditorSettingsExternalizable.PropNames.PROP_IS_RIGHT_MARGIN_SHOWN -> refresh(::myIsRightMarginShown) EditorSettingsExternalizable.PropNames.PROP_VERTICAL_SCROLL_OFFSET -> refresh(::myVerticalScrollOffset) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.kt b/platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.kt index e0e50ddac6d6..c7050211055c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.kt +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.kt @@ -144,6 +144,10 @@ class SettingsImpl internal constructor(private val editor: EditorImpl?, kind: E editor?.contentComponent?.repaint() } + if (propertyName == state::myIsSmoothCaretBlinking.name) { + editor?.restartCaretBlinking() + } + if (propertyName == state::myStickyLinesShownForLanguage.name) { editor?.stickyLinesForLangChanged(event) } @@ -524,6 +528,14 @@ class SettingsImpl internal constructor(private val editor: EditorImpl?, kind: E state.myCaretBlinkingPeriod = blinkPeriod } + override fun isSmoothCaretBlinking(): Boolean { + return state.myIsSmoothCaretBlinking + } + + override fun setSmoothCaretBlinking(`val`: Boolean) { + state.myIsSmoothCaretBlinking = `val` + } + override fun isDndEnabled(): Boolean { return state.myIsDndEnabled } diff --git a/platform/util/resources/misc/registry.properties b/platform/util/resources/misc/registry.properties index dbfa702fb302..4db817560dff 100644 --- a/platform/util/resources/misc/registry.properties +++ b/platform/util/resources/misc/registry.properties @@ -1317,9 +1317,6 @@ editor.smooth.caret.curve.parametric.factor.description=Parametric f(t) = 1 - (1 editor.smooth.caret.duration=120 editor.smooth.caret.duration.description=Duration of caret blinking animation in milliseconds -editor.smooth.caret.blinking=false -editor.smooth.caret.blinking.description=Enable smooth caret blinking animation - editor.zero.latency.rendering=true editor.zero.latency.rendering.description=Enables zero-latency rendering mode in editor