From 45c215700b2e698b66f2048c291ae62ad173dadb Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Fri, 25 Jan 2013 10:19:34 +0100 Subject: [PATCH] avoid tree.hasFocus calculation at all, we have hasFocus passed to renderer --- .../intellij/ui/ColoredTreeCellRenderer.java | 21 ++++--------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/platform/platform-api/src/com/intellij/ui/ColoredTreeCellRenderer.java b/platform/platform-api/src/com/intellij/ui/ColoredTreeCellRenderer.java index fa55c524e0d5..f5b66bed641f 100644 --- a/platform/platform-api/src/com/intellij/ui/ColoredTreeCellRenderer.java +++ b/platform/platform-api/src/com/intellij/ui/ColoredTreeCellRenderer.java @@ -39,7 +39,6 @@ public abstract class ColoredTreeCellRenderer extends SimpleColoredComponent imp * Defines whether the tree has focus or not */ private boolean myFocused; - private boolean myFocusedCalculated; protected JTree myTree; @@ -58,7 +57,7 @@ public abstract class ColoredTreeCellRenderer extends SimpleColoredComponent imp clear(); mySelected = selected; - myFocusedCalculated = false; + myFocused = hasFocus; // We paint background if and only if tree path is selected and tree has focus. // If path is selected and tree is not focused then we just paint focused border. @@ -74,7 +73,7 @@ public abstract class ColoredTreeCellRenderer extends SimpleColoredComponent imp else { if (selected) { setPaintFocusBorder(true); - if (isFocused()) { + if (hasFocus) { setBackground(UIUtil.getTreeSelectionBackground()); } else { @@ -108,7 +107,7 @@ public abstract class ColoredTreeCellRenderer extends SimpleColoredComponent imp super.setIconOpaque(false); } else { - super.setOpaque(myOpaque || selected && hasFocus || selected && isFocused()); // draw selection background even for non-opaque tree + super.setOpaque(myOpaque || selected && hasFocus); // draw selection background even for non-opaque tree } if (tree.getUI() instanceof WideSelectionTreeUI && UIUtil.isUnderAquaBasedLookAndFeel()) { @@ -129,18 +128,6 @@ public abstract class ColoredTreeCellRenderer extends SimpleColoredComponent imp return myTree; } - protected final boolean isFocused() { - if (!myFocusedCalculated) { - myFocused = calcFocusedState(); - myFocusedCalculated = true; - } - return myFocused; - } - - protected boolean calcFocusedState() { - return myTree.hasFocus(); - } - public void setOpaque(boolean isOpaque) { myOpaque = isOpaque; super.setOpaque(isOpaque); @@ -151,7 +138,7 @@ public abstract class ColoredTreeCellRenderer extends SimpleColoredComponent imp * It guaranties readability of selected text in any LAF. */ public void append(@NotNull @Nls String fragment, @NotNull SimpleTextAttributes attributes, boolean isMainText) { - if (mySelected && isFocused()) { + if (mySelected && myFocused) { super.append(fragment, new SimpleTextAttributes(attributes.getStyle(), UIUtil.getTreeSelectionForeground()), isMainText); } else if (mySelected && UIUtil.isUnderAquaBasedLookAndFeel()) {