diff --git a/platform/platform-impl/src/com/intellij/ide/SystemHealthMonitor.java b/platform/platform-impl/src/com/intellij/ide/SystemHealthMonitor.java
index 025ce33db5fb..3430009bf7ae 100644
--- a/platform/platform-impl/src/com/intellij/ide/SystemHealthMonitor.java
+++ b/platform/platform-impl/src/com/intellij/ide/SystemHealthMonitor.java
@@ -41,6 +41,7 @@ import com.intellij.ui.awt.RelativePoint;
import com.intellij.util.JdkBundle;
import com.intellij.util.SystemProperties;
import com.intellij.util.TimeoutUtil;
+import com.intellij.util.ui.UIUtil;
import com.sun.jna.Library;
import com.sun.jna.Memory;
import com.sun.jna.Native;
@@ -78,6 +79,7 @@ public class SystemHealthMonitor implements ApplicationComponent {
checkReservedCodeCacheSize();
checkIBus();
checkSignalBlocking();
+ checkHiDPIMode();
startDiskSpaceMonitoring();
}
@@ -166,6 +168,14 @@ public class SystemHealthMonitor implements ApplicationComponent {
}
}
+ private void checkHiDPIMode() {
+ // if switched from JRE-HiDPI to IDE-HiDPI
+ boolean switchedHiDPIMode = SystemInfo.isJetBrainsJvm && "true".equalsIgnoreCase(System.getProperty("sun.java2d.uiScale.enabled")) && !UIUtil.isJreHiDPIEnabled();
+ if (SystemInfo.isWindows && (switchedHiDPIMode || RemoteDesktopService.isRemoteSession())) {
+ showNotification(new KeyHyperlinkAdapter("ide.set.hidpi.mode"));
+ }
+ }
+
private void showNotification(KeyHyperlinkAdapter adapter, Object... params) {
@PropertyKey(resourceBundle = "messages.IdeBundle") String key = adapter.key;
boolean ignored = adapter.isIgnored();
diff --git a/platform/platform-resources-en/src/messages/IdeBundle.properties b/platform/platform-resources-en/src/messages/IdeBundle.properties
index 2e65277ff31a..3cef34af892a 100644
--- a/platform/platform-resources-en/src/messages/IdeBundle.properties
+++ b/platform/platform-resources-en/src/messages/IdeBundle.properties
@@ -538,6 +538,7 @@ ide.restart.required.notification={0} {1} to activate changes in
ide.restart.action=Restart
ide.shutdown.action=Shutdown
ide.postpone.action=Postpone
+ide.set.hidpi.mode=You may need to manually configure the HiDPI mode to prevent UI scaling issues. See the troubleshooting guide.
title.plugins=Plugins
title.plugins.changed=Plugins Changed
plugin.status.not.specified=(not specified)