From cbbf334227ef69b0f4e76b5ce39687ec0c8c7040 Mon Sep 17 00:00:00 2001 From: Cedrick Cooke Date: Mon, 3 Nov 2025 16:23:39 -0800 Subject: [PATCH] CMP-8068 Provide default density qualifier on headless desktop --- .../compose/resources/ResourceEnvironment.desktop.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/components/resources/library/src/desktopMain/kotlin/org/jetbrains/compose/resources/ResourceEnvironment.desktop.kt b/components/resources/library/src/desktopMain/kotlin/org/jetbrains/compose/resources/ResourceEnvironment.desktop.kt index 8c45734ebe1..41891ac328e 100644 --- a/components/resources/library/src/desktopMain/kotlin/org/jetbrains/compose/resources/ResourceEnvironment.desktop.kt +++ b/components/resources/library/src/desktopMain/kotlin/org/jetbrains/compose/resources/ResourceEnvironment.desktop.kt @@ -2,6 +2,7 @@ package org.jetbrains.compose.resources import org.jetbrains.skiko.SystemTheme import org.jetbrains.skiko.currentSystemTheme +import java.awt.GraphicsEnvironment import java.awt.Toolkit import java.util.* @@ -9,7 +10,12 @@ internal actual fun getSystemEnvironment(): ResourceEnvironment { val locale = Locale.getDefault() //FIXME: don't use skiko internals val isDarkTheme = currentSystemTheme == SystemTheme.DARK - val dpi = Toolkit.getDefaultToolkit().screenResolution + val dpi = if (GraphicsEnvironment.isHeadless()) { + // Default to 1x ("unscaled") resources when DPI info not available + DensityQualifier.MDPI.dpi + } else { + Toolkit.getDefaultToolkit().screenResolution + } return ResourceEnvironment( language = LanguageQualifier(locale.language), region = RegionQualifier(locale.country),