mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
ui: fix editor tabs height for multiple rows & rows > 2 + text vertical alignment for same case
This commit is contained in:
@@ -22,6 +22,7 @@ import com.intellij.openapi.wm.IdeFocusManager;
|
||||
import com.intellij.ui.tabs.JBTabsPosition;
|
||||
import com.intellij.ui.tabs.TabInfo;
|
||||
import com.intellij.ui.tabs.TabsUtil;
|
||||
import com.intellij.ui.tabs.impl.table.TableLayout;
|
||||
import com.intellij.util.ui.SameColor;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -74,7 +75,14 @@ public class JBEditorTabs extends JBTabsImpl {
|
||||
if (isSingleRow() && getPosition() == JBTabsPosition.bottom) {
|
||||
_y += TabsUtil.ACTIVE_TAB_UNDERLINE_HEIGHT;
|
||||
} else {
|
||||
_height -= TabsUtil.ACTIVE_TAB_UNDERLINE_HEIGHT;
|
||||
if (isSingleRow()) {
|
||||
_height -= TabsUtil.ACTIVE_TAB_UNDERLINE_HEIGHT;
|
||||
} else {
|
||||
TabInfo info = label.getInfo();
|
||||
if (((TableLayout)getEffectiveLayout()).isLastRow(info)) {
|
||||
_height -= TabsUtil.ACTIVE_TAB_UNDERLINE_HEIGHT;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.intellij.ui.tabs.JBTabsPosition;
|
||||
import com.intellij.ui.tabs.TabInfo;
|
||||
import com.intellij.ui.tabs.TabsUtil;
|
||||
import com.intellij.ui.tabs.UiDecorator;
|
||||
import com.intellij.ui.tabs.impl.table.TableLayout;
|
||||
import com.intellij.util.PairConsumer;
|
||||
import com.intellij.util.ui.Centerizer;
|
||||
|
||||
@@ -226,7 +227,11 @@ public class TabLabel extends JPanel {
|
||||
private int getNonSelectedOffset() {
|
||||
if (myTabs.isEditorTabs()) {
|
||||
int offset = (TabsUtil.ACTIVE_TAB_UNDERLINE_HEIGHT / 2);
|
||||
return myTabs.getTabsPosition() == JBTabsPosition.bottom ? -(offset + 1) : -offset + 1;
|
||||
if (myTabs.isSingleRow()) {
|
||||
return myTabs.getTabsPosition() == JBTabsPosition.bottom ? -(offset + 1) : -offset + 1;
|
||||
} else {
|
||||
return ((TableLayout)myTabs.getEffectiveLayout()).isLastRow(getInfo()) ? -offset + 1 : offset - 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 2;
|
||||
|
||||
@@ -111,7 +111,18 @@ public class TableLayout extends TabLayout {
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
public boolean isLastRow(TabInfo info) {
|
||||
if (info == null) return false;
|
||||
List<TableRow> rows = myLastTableLayout.table;
|
||||
if (rows.size() > 0) {
|
||||
for (TabInfo tabInfo : rows.get(rows.size() - 1).myColumns) {
|
||||
if (tabInfo == info) return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public LayoutPassInfo layoutTable(List<TabInfo> visibleInfos) {
|
||||
myTabs.resetLayout(true);
|
||||
|
||||
Reference in New Issue
Block a user