diff --git a/src/public/app/layouts/desktop_layout.js b/src/public/app/layouts/desktop_layout.js
index 85be98b11..92b0fe069 100644
--- a/src/public/app/layouts/desktop_layout.js
+++ b/src/public/app/layouts/desktop_layout.js
@@ -183,7 +183,7 @@ export default class DesktopLayout {
.child(new FlexContainer('row').overflowing()
.child(new TabRowWidget())
.child(new TitleBarButtonsWidget())
- .css('height', '36px')
+ .css('height', '40px')
)
.child(new PaneContainer(() =>
new FlexContainer('column')
diff --git a/src/public/app/widgets/tab_row.js b/src/public/app/widgets/tab_row.js
index 7a6ad4ed9..394d9fce3 100644
--- a/src/public/app/widgets/tab_row.js
+++ b/src/public/app/widgets/tab_row.js
@@ -23,6 +23,7 @@ const TAB_CONTAINER_MIN_WIDTH = 24;
const TAB_CONTAINER_MAX_WIDTH = 240;
const NEW_TAB_WIDTH = 32;
const MIN_FILLER_WIDTH = 50;
+const MARGIN_WIDTH = 5;
const TAB_SIZE_SMALL = 84;
const TAB_SIZE_SMALLER = 60;
@@ -39,9 +40,7 @@ const TAB_TPL = `
`;
const NEW_TAB_BUTTON_TPL = `
+
`;
-const FILLER_TPL = ``;
+const FILLER_TPL = ``;
const TAB_ROW_TPL = `
@@ -49,7 +48,6 @@ const TAB_ROW_TPL = `
.note-tab-row {
box-sizing: border-box;
position: relative;
- height: 36px;
width: 100%;
background: var(--main-background-color);
overflow: hidden;
@@ -71,7 +69,6 @@ const TAB_ROW_TPL = `
.note-tab-row .note-tab {
position: absolute;
left: 0;
- height: 33px;
width: 240px;
border: 0;
margin: 0;
@@ -82,15 +79,15 @@ const TAB_ROW_TPL = `
.note-new-tab {
position: absolute;
left: 0;
- height: 33px;
- width: 32px;
+ width: 40px;
+ height: 40px;
+ padding: 3px;
border: 0;
margin: 0;
z-index: 1;
text-align: center;
font-size: 24px;
cursor: pointer;
- border-bottom: 1px solid var(--main-border-color);
box-sizing: border-box;
}
@@ -104,15 +101,8 @@ const TAB_ROW_TPL = `
-webkit-app-region: drag;
position: absolute;
left: 0;
- height: 36px;
}
-
- .tab-row-filler .tab-row-border {
- background: linear-gradient(to right, var(--main-border-color), transparent);
- height: 1px;
- margin-top: 32px;
- }
-
+
.note-tab-row .note-tab[active] {
z-index: 5;
}
@@ -135,19 +125,15 @@ const TAB_ROW_TPL = `
bottom: 0;
left: 0;
right: 0;
- padding: 5px 8px;
- border-top-left-radius: 8px;
- border-top-right-radius: 8px;
+ height: 40px;
+ padding: 8px 11px;
+ border-radius: 8px;
overflow: hidden;
pointer-events: all;
background-color: var(--accented-background-color);
- border-bottom: 1px solid var(--main-border-color);
}
.note-tab-row .note-tab[active] .note-tab-wrapper {
- background-color: var(--main-background-color);
- border: 1px solid var(--main-border-color);
- border-bottom: 0;
font-weight: bold;
}
@@ -193,8 +179,6 @@ const TAB_ROW_TPL = `
flex-shrink: 0;
border-radius: 50%;
z-index: 100;
- width: 24px;
- height: 24px;
text-align: center;
}
@@ -251,9 +235,9 @@ const TAB_ROW_TPL = `
export default class TabRowWidget extends BasicWidget {
doRender() {
this.$widget = $(TAB_ROW_TPL);
+ this.overflowing();
this.draggabillies = [];
- this.eventListeners = {};
this.setupStyle();
this.setupEvents();
@@ -321,10 +305,11 @@ export default class TabRowWidget extends BasicWidget {
get tabWidths() {
const numberOfTabs = this.tabEls.length;
const tabsContainerWidth = this.$tabContainer[0].clientWidth - NEW_TAB_WIDTH - MIN_FILLER_WIDTH;
- const targetWidth = tabsContainerWidth / numberOfTabs;
+ const marginWidth = (numberOfTabs - 1) * MARGIN_WIDTH;
+ const targetWidth = (tabsContainerWidth - marginWidth) / numberOfTabs;
const clampedTargetWidth = Math.max(TAB_CONTAINER_MIN_WIDTH, Math.min(TAB_CONTAINER_MAX_WIDTH, targetWidth));
const flooredClampedTargetWidth = Math.floor(clampedTargetWidth);
- const totalTabsWidthUsingTarget = flooredClampedTargetWidth * numberOfTabs;
+ const totalTabsWidthUsingTarget = flooredClampedTargetWidth * numberOfTabs + marginWidth;
const totalExtraWidthDueToFlooring = tabsContainerWidth - totalTabsWidthUsingTarget;
const widths = [];
@@ -332,8 +317,12 @@ export default class TabRowWidget extends BasicWidget {
for (let i = 0; i < numberOfTabs; i += 1) {
const extraWidth = flooredClampedTargetWidth < TAB_CONTAINER_MAX_WIDTH && extraWidthRemaining > 0 ? 1 : 0;
+
widths.push(flooredClampedTargetWidth + extraWidth);
- if (extraWidthRemaining > 0) extraWidthRemaining -= 1;
+
+ if (extraWidthRemaining > 0) {
+ extraWidthRemaining -= 1;
+ }
}
if (this.$filler) {
@@ -349,9 +338,11 @@ export default class TabRowWidget extends BasicWidget {
let position = 0;
this.tabWidths.forEach(width => {
tabPositions.push(position);
- position += width;
+ position += width + MARGIN_WIDTH;
});
+ position -= MARGIN_WIDTH; // last margin should not be applied
+
const newTabPosition = position;
const fillerPosition = position + 32;