diff --git a/platform/platform-api/src/com/intellij/ui/components/panels/NonOpaquePanel.java b/platform/platform-api/src/com/intellij/ui/components/panels/NonOpaquePanel.java index f3c521a5eb47..1c53923022f9 100644 --- a/platform/platform-api/src/com/intellij/ui/components/panels/NonOpaquePanel.java +++ b/platform/platform-api/src/com/intellij/ui/components/panels/NonOpaquePanel.java @@ -58,7 +58,16 @@ public class NonOpaquePanel extends Wrapper { super.setOpaque(isOpaque); if (!isOpaque && UIUtil.isUnderNimbusLookAndFeel()) { - setBackground(TRANSPARENT); + if (UIUtil.isUnderNimbusLookAndFeel()) { + setBackground(TRANSPARENT); + } + } + } + + public static void setTransparent(JComponent c) { + c.setOpaque(false); + if (UIUtil.isUnderNimbusLookAndFeel()) { + c.setBackground(TRANSPARENT); } } } diff --git a/platform/platform-impl/src/com/intellij/ui/popup/PopupFactoryImpl.java b/platform/platform-impl/src/com/intellij/ui/popup/PopupFactoryImpl.java index 6941af28b8f9..a2b16dd885ce 100644 --- a/platform/platform-impl/src/com/intellij/ui/popup/PopupFactoryImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/popup/PopupFactoryImpl.java @@ -711,7 +711,7 @@ public class PopupFactoryImpl extends JBPopupFactory { final JLabel label = new JLabel(text.getText()); final Dimension size = label.getPreferredSize(); text.setEditable(false); - text.setOpaque(false); + NonOpaquePanel.setTransparent(text); text.setBorder(null); text.setPreferredSize(size); diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesTreeList.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesTreeList.java index 50e0febdf6bb..644de8146d12 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesTreeList.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesTreeList.java @@ -35,6 +35,7 @@ import com.intellij.openapi.vcs.changes.ChangesUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.*; import com.intellij.ui.components.JBList; +import com.intellij.ui.components.panels.NonOpaquePanel; import com.intellij.ui.treeStructure.Tree; import com.intellij.ui.treeStructure.actions.CollapseAllAction; import com.intellij.ui.treeStructure.actions.ExpandAllAction; @@ -556,8 +557,8 @@ public abstract class ChangesTreeList extends JPanel { myCheckBox = new JCheckBox(); myTextRenderer = new ChangesBrowserNodeRenderer(myProject, false, myHighlightProblems); - myCheckBox.setBackground(null); - setBackground(null); + NonOpaquePanel.setTransparent(this); + NonOpaquePanel.setTransparent(myCheckBox); if (myShowCheckboxes) { add(myCheckBox, BorderLayout.WEST);