Skip to content

Commit a8a76b1

Browse files
committed
Added: Option to control visibility of close button of tab
(#217)
1 parent 2fa8732 commit a8a76b1

File tree

7 files changed

+36
-17
lines changed

7 files changed

+36
-17
lines changed

src/_locales/dict.setup-page.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,11 +1136,21 @@ export const setupPageTranslations: Translations = {
11361136
de: 'Überspringe leere Panels beim Wechseln',
11371137
zh_CN: '切换时跳过空面板',
11381138
},
1139-
'settings.show_tab_rm_btn': {
1140-
en: 'Show close button on mouse hover',
1141-
ru: 'Показывать кнопку закрытия вкладки при наведении курсора',
1142-
de: 'Zeige "Schließen"-Knopf bei Maus-Hover',
1143-
zh_CN: '在鼠标悬停时显示关闭按钮',
1139+
'settings.tab_rm_btn': {
1140+
en: 'Show close button',
1141+
ru: 'Показывать кнопку закрытия вкладки',
1142+
},
1143+
'settings.tab_rm_btn_always': {
1144+
en: 'always',
1145+
ru: 'всегда',
1146+
},
1147+
'settings.tab_rm_btn_hover': {
1148+
en: 'on mouse hover',
1149+
ru: 'при наведении курсора',
1150+
},
1151+
'settings.tab_rm_btn_none': {
1152+
en: 'no',
1153+
ru: 'нет',
11441154
},
11451155
'settings.hide_inactive_panel_tabs': {
11461156
en: 'Hide native tabs of inactive panels',

src/defaults/settings.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export const DEFAULT_SETTINGS: SettingsState = {
5252
warnOnMultiTabClose: 'collapsed',
5353
activateLastTabOnPanelSwitching: true,
5454
activateLastTabOnPanelSwitchingLoadedOnly: true,
55-
showTabRmBtn: true,
55+
tabRmBtn: 'hover',
5656
hideInact: false,
5757
activateAfterClosing: 'next',
5858
activateAfterClosingFallbackToHistory: true,
@@ -211,6 +211,7 @@ export const SETTINGS_OPTIONS = {
211211
bookmarksLeftClickAction: ['open_in_act', 'open_in_new'],
212212
bookmarksNewTabPos: ['default', 'after'],
213213
bookmarksMidClickAction: ['open_in_new', 'edit', 'delete'],
214+
tabRmBtn: ['always', 'hover', 'none'],
214215
activateAfterClosing: ['prev_act', 'next', 'prev', 'none'],
215216
tabsUpdateMark: ['all', 'pin', 'norm', 'none'],
216217
pinnedTabsPosition: ['panel', 'top', 'left', 'right'],

src/page.setup/components/settings.tabs.vue

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,12 @@ section(ref="el")
2020
label="settings.activate_last_tab_on_panel_switching_loaded_only"
2121
v-model:value="Settings.state.activateLastTabOnPanelSwitchingLoadedOnly"
2222
@update:value="Settings.saveDebounced(150)")
23-
ToggleField(
24-
label="settings.show_tab_rm_btn"
25-
v-model:value="Settings.state.showTabRmBtn"
23+
SelectField(
24+
label="settings.tab_rm_btn"
25+
optLabel="settings.tab_rm_btn_"
26+
v-model:value="Settings.state.tabRmBtn"
27+
:folded="true"
28+
:opts="Settings.getOpts('tabRmBtn')"
2629
@update:value="Settings.saveDebounced(150)")
2730
ToggleField(
2831
label="settings.hide_inactive_panel_tabs"

src/sidebar/components/tab.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
.progress-spinner(v-if="loading === true")
5353
.child-count(v-if="tab.folded && tab.branchLen") {{tab.branchLen}}
5454
.close(
55-
v-if="Settings.state.showTabRmBtn && !isPinned"
55+
v-if="!isPinned && Settings.state.tabRmBtn !== 'none'"
5656
@mousedown.stop="onMouseDownClose"
5757
@mouseup.stop="onMouseUpClose"
5858
@contextmenu.stop.prevent)

src/sidebar/sidebar.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
:data-pinned-tabs-position="pinnedTabsPosition"
1515
:data-pinned-tabs-list="Settings.state.pinnedTabsList"
1616
:data-tabs-tree-lvl-marks="Settings.state.tabsLvlDots"
17-
:data-tabs-close-btn="Settings.state.showTabRmBtn"
17+
:data-tabs-close-btn="Settings.state.tabRmBtn"
1818
:data-drag="DnD.reactive.isStarted"
1919
:data-nav-inline="Settings.state.navBarInline"
2020
:data-nav-layout="navBarLayout"

src/styles/themes/proton/sidebar/tab.styl

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -506,17 +506,21 @@
506506
z-index: 1
507507
mask: linear-gradient(-90deg, transparent, #000000 12px, #000000)
508508

509-
#root[data-tabs-close-btn="true"] .Tab:hover .t-box
509+
#root[data-tabs-close-btn="always"] .Tab .t-box
510+
#root[data-tabs-close-btn="hover"] .Tab:hover .t-box
510511
mask: linear-gradient(
511512
-90deg,
512513
transparent,
513514
transparent var(--close-btn-offset),
514515
#000000 calc(var(--close-btn-offset) + 12px),
515516
#000000)
516517

517-
#root[data-tabs-close-btn="true"] .Tab[data-audible="true"]:hover .t-box
518-
#root[data-tabs-close-btn="true"] .Tab[data-muted="true"]:hover .t-box
519-
#root[data-tabs-close-btn="true"] .Tab[data-paused="true"]:hover .t-box
518+
#root[data-tabs-close-btn="always"] .Tab[data-audible="true"] .t-box
519+
#root[data-tabs-close-btn="always"] .Tab[data-muted="true"] .t-box
520+
#root[data-tabs-close-btn="always"] .Tab[data-paused="true"] .t-box
521+
#root[data-tabs-close-btn="hover"] .Tab[data-audible="true"]:hover .t-box
522+
#root[data-tabs-close-btn="hover"] .Tab[data-muted="true"]:hover .t-box
523+
#root[data-tabs-close-btn="hover"] .Tab[data-paused="true"]:hover .t-box
520524
mask: linear-gradient(
521525
-90deg,
522526
transparent,
@@ -638,7 +642,8 @@
638642
&:active
639643
background-color: var(--active-el-overlay-clicked-bg)
640644

641-
.Tab:hover .close
645+
#root[data-tabs-close-btn="always"] .Tab .close
646+
#root[data-tabs-close-btn="hover"] .Tab:hover .close
642647
opacity: 1
643648

644649
// ---

src/types/settings.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export interface SettingsState {
5252
warnOnMultiTabClose: (typeof SETTINGS_OPTIONS.warnOnMultiTabClose)[number]
5353
activateLastTabOnPanelSwitching: boolean
5454
activateLastTabOnPanelSwitchingLoadedOnly: boolean
55-
showTabRmBtn: boolean
55+
tabRmBtn: (typeof SETTINGS_OPTIONS.tabRmBtn)[number]
5656
hideInact: boolean
5757
activateAfterClosing: (typeof SETTINGS_OPTIONS.activateAfterClosing)[number]
5858
activateAfterClosingFallbackToHistory: boolean

0 commit comments

Comments
 (0)