--- old/src/java.desktop/share/classes/com/sun/java/swing/plaf/motif/MotifDesktopIconUI.java 2016-04-06 23:43:13.000000000 +0400 +++ new/src/java.desktop/share/classes/com/sun/java/swing/plaf/motif/MotifDesktopIconUI.java 2016-04-06 23:43:13.000000000 +0400 @@ -56,6 +56,8 @@ // we can remove its listeners. private MotifInternalFrameTitlePane sysMenuTitlePane; + private TextUIDrawing textUIDrawing; + JPopupMenu systemMenu; EventListener mml; @@ -90,6 +92,7 @@ desktopIcon.setSize(desktopIcon.getPreferredSize()); desktopIcon.validate(); JLayeredPane.putLayer(desktopIcon, JLayeredPane.getLayer(frame)); + textUIDrawing = SwingUtilities2.getTextUIDrawing(textUIDrawing); } protected void installComponents(){ @@ -152,6 +155,10 @@ desktopIcon.setLayout(null); desktopIcon.remove(iconButton); desktopIcon.remove(iconLabel); + if (textUIDrawing != SwingUtilities2.DEFAULT_UI_TEXT_DRAWING + && textUIDrawing instanceof UIResource) { + textUIDrawing = SwingUtilities2.DEFAULT_UI_TEXT_DRAWING; + } } protected void uninstallListeners(){ @@ -260,7 +267,7 @@ FontMetrics fm = frame.getFontMetrics(defaultTitleFont); int w = 4; if (title != null) { - w += SwingUtilities2.stringWidth(frame, fm, title); + w += textUIDrawing.getStringWidth(frame, fm, title); } return new Dimension(w, LABEL_HEIGHT + LABEL_DIVIDER); } @@ -288,7 +295,7 @@ g.setColor(UIManager.getColor("inactiveCaptionText")); String title = frame.getTitle(); if (title != null) { - SwingUtilities2.drawString(frame, g, title, 4, y); + textUIDrawing.drawString(frame, g, title, 4, y); } } }