diff --git a/platform/platform-impl/src/com/intellij/ide/actions/IdeScaleTransformer.kt b/platform/platform-impl/src/com/intellij/ide/actions/IdeScaleTransformer.kt index 74dd3d749132..38e4163c3331 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/IdeScaleTransformer.kt +++ b/platform/platform-impl/src/com/intellij/ide/actions/IdeScaleTransformer.kt @@ -78,7 +78,11 @@ class IdeScaleTransformer : PersistentStateComponent Unit)? = null) { + fun scale(newScaleFactor: Float) { + scale(newScaleFactor, null) + } + + private fun scale(newScaleFactor: Float, performBeforeTweaking: (() -> Unit)?) { prepareTweaking() performBeforeTweaking?.invoke() val newParameters = ScalingParameters.ScaleOriented(newScaleFactor, savedOriginalConsoleFontSize) diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.kt b/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.kt index 1f5fc1f86ddc..4d99cfebe4b1 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.kt +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.kt @@ -648,8 +648,11 @@ class LafManagerImpl : LafManager(), PersistentStateComponent, Disposab } override fun applyDensity() { + val ideScale = IdeScaleTransformer.instance.currentScale + IdeScaleTransformer.instance.reset() // need to temporarily reset this to correctly apply new size values setCurrentLookAndFeel(currentLookAndFeel!!) updateUI() + IdeScaleTransformer.instance.scale(ideScale) } private fun applyDensity(defaults: UIDefaults) {