From 8abcc8791a844b6ccd3b2c567a2dd496e512ccb4 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Fri, 5 Aug 2011 13:31:51 +0400 Subject: [PATCH] More consistent WM_CLASS setting --- .../src/com/intellij/ui/AppUIUtil.java | 21 +++++++++++++------ .../src/com/intellij/idea/MainImpl.java | 7 ++----- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ui/AppUIUtil.java b/platform/platform-impl/src/com/intellij/ui/AppUIUtil.java index 4b39ecc82e59..4e7496b5f2f1 100644 --- a/platform/platform-impl/src/com/intellij/ui/AppUIUtil.java +++ b/platform/platform-impl/src/com/intellij/ui/AppUIUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2011 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,10 +17,12 @@ package com.intellij.ui; import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.ApplicationNamesInfo; import com.intellij.openapi.application.impl.ApplicationInfoImpl; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Condition; -import com.intellij.util.ImageLoader; +import com.intellij.openapi.util.text.StringUtil; +import com.intellij.util.PlatformUtils; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; @@ -40,10 +42,11 @@ public class AppUIUtil { frame.setIconImages(getAppIconImages()); } + @SuppressWarnings({"UnnecessaryFullyQualifiedName", "deprecation"}) public static List getAppIconImages() { final List images = new ArrayList(); - images.add(ImageLoader.loadFromResource(ApplicationInfoImpl.getShadowInstance().getIconUrl())); - images.add(ImageLoader.loadFromResource(ApplicationInfoImpl.getShadowInstance().getSmallIconUrl())); + images.add(com.intellij.util.ImageLoader.loadFromResource(ApplicationInfoImpl.getShadowInstance().getIconUrl())); + images.add(com.intellij.util.ImageLoader.loadFromResource(ApplicationInfoImpl.getShadowInstance().getSmallIconUrl())); return images; } @@ -66,16 +69,22 @@ public class AppUIUtil { } } - public static void updateFrameClass(final String productName) { + public static void updateFrameClass() { try { final Toolkit toolkit = Toolkit.getDefaultToolkit(); final Class aClass = toolkit.getClass(); if ("sun.awt.X11.XToolkit".equals(aClass.getName())) { final Field awtAppClassName = aClass.getDeclaredField("awtAppClassName"); awtAppClassName.setAccessible(true); - awtAppClassName.set(toolkit, productName); + awtAppClassName.set(toolkit, getFrameClass()); } } catch (Exception ignore) { } } + + public static String getFrameClass() { + final String name = ApplicationNamesInfo.getInstance().getProductName(); + final String wmClass = StringUtil.replaceChar(name.toLowerCase(), ' ', '-'); + return PlatformUtils.isCommunity() ? wmClass + "-ce" : wmClass; + } } diff --git a/platform/platform-main/src/com/intellij/idea/MainImpl.java b/platform/platform-main/src/com/intellij/idea/MainImpl.java index 38743bb6ccdf..33dd03f15556 100644 --- a/platform/platform-main/src/com/intellij/idea/MainImpl.java +++ b/platform/platform-main/src/com/intellij/idea/MainImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2011 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,10 +42,7 @@ public class MainImpl { StartupUtil.isHeadless = Main.isHeadless(args); if (!StartupUtil.isHeadless) { - String name = ApplicationNamesInfo.getInstance().getFullProductName(); - if (name.toUpperCase().contains("IDEA")) name += " CE"; - AppUIUtil.updateFrameClass(name); - + AppUIUtil.updateFrameClass(); AppUIUtil.updateFrameIcon(JOptionPane.getRootFrame()); final boolean isNewConfigFolder = PathManager.ensureConfigFolderExists(true);