summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java')
-rw-r--r--platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java
index 067592b06a9e..7fa2f15aeb92 100644
--- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java
+++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java
@@ -12,7 +12,9 @@ import com.intellij.ui.content.ContentManagerEvent;
import com.intellij.util.ui.JBUI;
import org.jetbrains.annotations.NotNull;
+import javax.swing.border.Border;
import java.awt.*;
+import java.util.Objects;
abstract class ContentLayout {
ToolWindowContentUi ui;
@@ -51,11 +53,17 @@ abstract class ContentLayout {
if (suffix != null) title += suffix;
label.setText(title);
- label.setBorder(JBUI.Borders.empty(0, 2, 0, 7));
+ Border border = JBUI.Borders.empty(0, 2, 0, 7);
if (ExperimentalUI.isNewUI()) {
- label.setBorder(shouldShowId()
- ? JBUI.Borders.empty(JBUI.CurrentTheme.ToolWindow.headerLabelLeftRightInsets())
- : JBUI.Borders.empty(JBUI.CurrentTheme.ToolWindow.headerTabLeftRightInsets()));
+ border = shouldShowId()
+ ? JBUI.Borders.empty(JBUI.CurrentTheme.ToolWindow.headerLabelLeftRightInsets())
+ : JBUI.Borders.empty(JBUI.CurrentTheme.ToolWindow.headerTabLeftRightInsets());
+ }
+ Border oldBorder = label.getBorder();
+ // Don't update component border (with following revalidation and repainting) if existing border is exactly the same we're going to set
+ if (oldBorder == null || !Objects.equals(oldBorder.getClass(), border.getClass())
+ || !oldBorder.getBorderInsets(label).equals(border.getBorderInsets(label))) {
+ label.setBorder(border);
}
label.setVisible(shouldShowId());
}