IDEA-259922 Regression: Preview tab isn't underlined when any error in the file

GitOrigin-RevId: 5d482aa55faec6934087de60b3d96d14d628dc35
This commit is contained in:
maksim.pelevin
2021-01-20 19:26:42 +03:00
committed by intellij-monorepo-bot
parent 31cb713239
commit 8a09c16c50
4 changed files with 11 additions and 24 deletions

View File

@@ -32,7 +32,6 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.wm.IdeFocusManager;
import com.intellij.ui.ComponentWithMnemonics;
import com.intellij.ui.InplaceButton;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.ui.docking.DockContainer;
import com.intellij.ui.docking.DockManager;
import com.intellij.ui.docking.DockableContent;
@@ -182,10 +181,6 @@ public final class EditorTabbedContainer implements CloseAction.CloseTarget {
myTabs.getTabAt(index).setDefaultForeground(color);
}
void setStyleAt(int index, @SimpleTextAttributes.StyleAttributeConstant int style) {
myTabs.getTabAt(index).setDefaultStyle(style);
}
void setTextAttributes(int index, @Nullable TextAttributes attributes) {
TabInfo tab = myTabs.getTabAt(index);
tab.setDefaultAttributes(attributes);

View File

@@ -28,7 +28,6 @@ import com.intellij.openapi.vfs.VirtualFileManager;
import com.intellij.openapi.wm.IdeFocusManager;
import com.intellij.ui.LayeredIcon;
import com.intellij.ui.OnePixelSplitter;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.ui.scale.JBUIScale;
import com.intellij.ui.tabs.impl.JBTabsImpl;
import com.intellij.ui.tabs.impl.tabsLayout.TabsLayoutInfo;
@@ -321,10 +320,6 @@ public final class EditorWindow {
myTabbedPane.setForegroundAt(index, color);
}
void setStyleAt(int index, @SimpleTextAttributes.StyleAttributeConstant int style) {
myTabbedPane.setStyleAt(index, style);
}
void setTextAttributes(int index, @Nullable TextAttributes attributes) {
myTabbedPane.setTextAttributes(index, attributes);
}
@@ -569,7 +564,7 @@ public final class EditorWindow {
myOwner.updateFileIconLater(file);
myOwner.updateFileColor(file);
}
myOwner.updateFileStyle(editor.getFile());
myOwner.updateFileColor(editor.getFile());
myOwner.setCurrentWindow(this, false);
hideTabsIfNeeded(editor);
}
@@ -952,7 +947,7 @@ public final class EditorWindow {
editorComposite.setPinned(pinned);
if (editorComposite.isPreview()) {
editorComposite.setPreview(false);
myOwner.updateFileStyle(file);
myOwner.updateFileColor(file);
}
if (wasPinned != pinned && ApplicationManager.getApplication().isDispatchThread()) {
ObjectUtils.consumeIfCast(getTabbedPane().getTabs(), JBTabsImpl.class, JBTabsImpl::doLayout);

View File

@@ -17,6 +17,7 @@ import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.colors.CodeInsightColors;
import com.intellij.openapi.editor.colors.EditorColorsManager;
import com.intellij.openapi.editor.colors.EditorColorsScheme;
import com.intellij.openapi.editor.markup.TextAttributes;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.fileEditor.FileEditor;
import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx;
@@ -416,22 +417,18 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
}
void updateFileColor(@NotNull VirtualFile file) {
Collection<EditorWindow> windows = findWindows(file);
for (EditorWindow window : windows) {
int index = window.findEditorIndex(window.findFileComposite(file));
LOG.assertTrue(index != -1);
window.setForegroundAt(index, getManager().getFileColor(file));
window.setTextAttributes(index, getManager().isProblem(file) ? colorScheme.getAttributes(CodeInsightColors.ERRORS_ATTRIBUTES) : null);
}
}
void updateFileStyle(@NotNull VirtualFile file) {
Collection<EditorWindow> windows = findWindows(file);
for (EditorWindow window : windows) {
EditorWithProviderComposite composite = window.findFileComposite(file);
int index = window.findEditorIndex(composite);
LOG.assertTrue(index != -1);
window.setStyleAt(index, composite != null && composite.isPreview() ? SimpleTextAttributes.STYLE_ITALIC : -1);
window.setForegroundAt(index, getManager().getFileColor(file));
TextAttributes attributes = getManager().isProblem(file) ? colorScheme.getAttributes(CodeInsightColors.ERRORS_ATTRIBUTES) : null;
if (composite != null && composite.isPreview()) {
var italic = new TextAttributes(null, null, null, null, Font.ITALIC);
attributes = (attributes == null) ? italic : TextAttributes.merge(italic, attributes);
}
window.setTextAttributes(index, attributes);
}
}

View File

@@ -425,7 +425,7 @@ public class FileEditorManagerImpl extends FileEditorManagerEx implements Persis
splitter.findEditorComposites(file).stream()
.filter(EditorComposite::isPreview)
.forEach(c -> c.setPreview(false));
splitter.updateFileStyle(file);
splitter.updateFileColor(file);
}
}