diff --git a/community-resources/src/idea/IdeaApplicationInfo.xml b/community-resources/src/idea/IdeaApplicationInfo.xml index 5933b343a528..9341e4669861 100644 --- a/community-resources/src/idea/IdeaApplicationInfo.xml +++ b/community-resources/src/idea/IdeaApplicationInfo.xml @@ -1,14 +1,14 @@ - + - + @@ -30,6 +30,5 @@ - diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy index b55ec29381ad..307a1c0f6d23 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy @@ -199,15 +199,13 @@ class LinuxDistributionBuilder extends OsSpecificDistributionBuilder { buildContext.messages.progress("Preparing files") def desktopTemplate = "${buildContext.paths.communityHome}/platform/platform-resources/src/entry.desktop" - def ce = buildContext.productProperties.productCode in ["IC", "PC"] def productName = buildContext.applicationInfo.productName - if (ce && !productName.contains("Community Edition")) productName += " Community Edition" // IdeaApplicationInfo.xml//names@product buildContext.ant.copy(file: desktopTemplate, tofile: "${snapDir}/snap/gui/${customizer.snapName}.desktop") { filterset(begintoken: '$', endtoken: '$') { filter(token: "NAME", value: productName) filter(token: "ICON", value: "/bin/${buildContext.productProperties.baseFileName}.png") filter(token: "SCRIPT", value: "/bin/${buildContext.productProperties.baseFileName}.sh") - filter(token: "WM_CLASS", value: "jetbrains-${buildContext.applicationInfo.shortProductName.toLowerCase()}${ce ? "-ce" : ""}") // AppUIUtil#getFrameClass + filter(token: "WM_CLASS", value: getFrameClass()) } } @@ -268,4 +266,13 @@ class LinuxDistributionBuilder extends OsSpecificDistributionBuilder { buildContext.notifyArtifactBuilt("${buildContext.paths.artifacts}/" + snapArtifact) } } + + // keep in sync with AppUIUtil#getFrameClass + private String getFrameClass() { + def name = buildContext.applicationInfo.productName + .toLowerCase(Locale.US) + .replace(' ', '-') + .replace("intellij-idea", "idea").replace("android-studio", "studio").replace("community-edition", "ce") + "jetbrains-" + name + } } \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/ui/AppUIUtil.java b/platform/platform-impl/src/com/intellij/ui/AppUIUtil.java index 0cf54e97fbf1..d1ccd57a9dec 100644 --- a/platform/platform-impl/src/com/intellij/ui/AppUIUtil.java +++ b/platform/platform-impl/src/com/intellij/ui/AppUIUtil.java @@ -144,10 +144,13 @@ public class AppUIUtil { catch (Exception ignore) { } } + // keep in sync with LinuxDistributionBuilder#getFrameClass public static String getFrameClass() { - String name = ApplicationNamesInfo.getInstance().getProductName().toLowerCase(Locale.US); - String wmClass = VENDOR_PREFIX + name.replace(' ', '-'); - if (PlatformUtils.isCommunityEdition()) wmClass += "-ce"; + String name = ApplicationNamesInfo.getInstance().getFullProductName() + .toLowerCase(Locale.US) + .replace(' ', '-') + .replace("intellij-idea", "idea").replace("android-studio", "studio").replace("community-edition", "ce"); // backward compatibility + String wmClass = VENDOR_PREFIX + name; if (DEBUG_MODE) wmClass += "-debug"; return wmClass; }