Implement 'focus follows mouse' for pane navigation

This commit is contained in:
Atte Timonen 2022-05-19 18:05:22 +02:00
parent 8ee1d0076b
commit a98050b1cd
3 changed files with 13 additions and 0 deletions

View File

@ -799,6 +799,9 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
const ref = tab.insertIntoContainer(this.viewContainer)
this.viewRefs.set(tab, ref)
tab.addEventListenerUntilDestroyed(ref.rootNodes[0], 'click', () => this.focus(tab))
if (this.config.store.terminal.focusFollowsMouse) {
tab.addEventListenerUntilDestroyed(ref.rootNodes[0], 'mousemove', () => this.focus(tab))
}
tab.subscribeUntilDestroyed(tab.titleChange$, () => this.updateTitle())
tab.subscribeUntilDestroyed(tab.activity$, a => a ? this.displayActivity() : this.clearActivity())

View File

@ -20,6 +20,7 @@ terminal:
showBuiltinProfiles: true
showRecentProfiles: 3
paneResizeStep: 0.1
focusFollowsMouse: false
hotkeys:
profile:
__nonStructural: true

View File

@ -319,6 +319,15 @@ h3.mt-4(translate) Panes
step='0.05'
)
.form-line()
.header
.title(translate) Focus follows mouse
.description(translate) Moving the mouse over an inactive pane will cause it to activate
toggle(
[(ngModel)]='config.store.terminal.focusFollowsMouse',
(ngModelChange)='config.save(); config.requestRestart()'
)
h3.mt-4(translate) Hacks
.form-line