mirror of
https://github.com/Eugeny/tabby.git
synced 2025-06-12 07:29:59 +00:00
fixed #3961 - broadcast more actions when "focus all panes" is active
This commit is contained in:
parent
e474ad573a
commit
9d88db83ee
@ -201,15 +201,7 @@ export class BaseTerminalTabComponent extends BaseTabComponent implements OnInit
|
|||||||
this.frontend.clearSelection()
|
this.frontend.clearSelection()
|
||||||
this.notifications.notice('Copied')
|
this.notifications.notice('Copied')
|
||||||
} else {
|
} else {
|
||||||
if (this.parent && this.parent instanceof SplitTabComponent && this.parent._allFocusMode) {
|
this.forEachFocusedTerminalPane(tab => tab.sendInput('\x03'))
|
||||||
for (const tab of this.parent.getAllTabs()) {
|
|
||||||
if (tab instanceof BaseTerminalTabComponent) {
|
|
||||||
tab.sendInput('\x03')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.sendInput('\x03')
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case 'copy':
|
case 'copy':
|
||||||
@ -218,46 +210,54 @@ export class BaseTerminalTabComponent extends BaseTabComponent implements OnInit
|
|||||||
this.notifications.notice('Copied')
|
this.notifications.notice('Copied')
|
||||||
break
|
break
|
||||||
case 'paste':
|
case 'paste':
|
||||||
this.paste()
|
this.forEachFocusedTerminalPane(tab => tab.paste())
|
||||||
break
|
break
|
||||||
case 'select-all':
|
case 'select-all':
|
||||||
this.frontend?.selectAll()
|
this.frontend?.selectAll()
|
||||||
break
|
break
|
||||||
case 'clear':
|
case 'clear':
|
||||||
this.frontend?.clear()
|
this.forEachFocusedTerminalPane(tab => tab.frontend?.clear())
|
||||||
break
|
break
|
||||||
case 'zoom-in':
|
case 'zoom-in':
|
||||||
this.zoomIn()
|
this.forEachFocusedTerminalPane(tab => tab.zoomIn())
|
||||||
break
|
break
|
||||||
case 'zoom-out':
|
case 'zoom-out':
|
||||||
this.zoomOut()
|
this.forEachFocusedTerminalPane(tab => tab.zoomOut())
|
||||||
break
|
break
|
||||||
case 'reset-zoom':
|
case 'reset-zoom':
|
||||||
this.resetZoom()
|
this.forEachFocusedTerminalPane(tab => tab.resetZoom())
|
||||||
break
|
break
|
||||||
case 'previous-word':
|
case 'previous-word':
|
||||||
this.sendInput({
|
this.forEachFocusedTerminalPane(tab => {
|
||||||
|
tab.sendInput({
|
||||||
[Platform.Windows]: '\x1b[1;5D',
|
[Platform.Windows]: '\x1b[1;5D',
|
||||||
[Platform.macOS]: '\x1bb',
|
[Platform.macOS]: '\x1bb',
|
||||||
[Platform.Linux]: '\x1bb',
|
[Platform.Linux]: '\x1bb',
|
||||||
}[this.hostApp.platform])
|
}[this.hostApp.platform])
|
||||||
|
})
|
||||||
break
|
break
|
||||||
case 'next-word':
|
case 'next-word':
|
||||||
this.sendInput({
|
this.forEachFocusedTerminalPane(tab => {
|
||||||
|
tab.sendInput({
|
||||||
[Platform.Windows]: '\x1b[1;5C',
|
[Platform.Windows]: '\x1b[1;5C',
|
||||||
[Platform.macOS]: '\x1bf',
|
[Platform.macOS]: '\x1bf',
|
||||||
[Platform.Linux]: '\x1bf',
|
[Platform.Linux]: '\x1bf',
|
||||||
}[this.hostApp.platform])
|
}[this.hostApp.platform])
|
||||||
|
})
|
||||||
break
|
break
|
||||||
case 'delete-previous-word':
|
case 'delete-previous-word':
|
||||||
this.sendInput('\x1b\x7f')
|
this.forEachFocusedTerminalPane(tab => {
|
||||||
|
tab.sendInput('\x1b\x7f')
|
||||||
|
})
|
||||||
break
|
break
|
||||||
case 'delete-next-word':
|
case 'delete-next-word':
|
||||||
this.sendInput({
|
this.forEachFocusedTerminalPane(tab => {
|
||||||
|
tab.sendInput({
|
||||||
[Platform.Windows]: '\x1bd\x1b[3;5~',
|
[Platform.Windows]: '\x1bd\x1b[3;5~',
|
||||||
[Platform.macOS]: '\x1bd',
|
[Platform.macOS]: '\x1bd',
|
||||||
[Platform.Linux]: '\x1bd',
|
[Platform.Linux]: '\x1bd',
|
||||||
}[this.hostApp.platform])
|
}[this.hostApp.platform])
|
||||||
|
})
|
||||||
break
|
break
|
||||||
case 'search':
|
case 'search':
|
||||||
this.showSearchPanel = true
|
this.showSearchPanel = true
|
||||||
@ -742,4 +742,16 @@ export class BaseTerminalTabComponent extends BaseTabComponent implements OnInit
|
|||||||
this.startSpinner()
|
this.startSpinner()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected forEachFocusedTerminalPane (cb: (tab: BaseTerminalTabComponent) => void): void {
|
||||||
|
if (this.parent && this.parent instanceof SplitTabComponent && this.parent._allFocusMode) {
|
||||||
|
for (const tab of this.parent.getAllTabs()) {
|
||||||
|
if (tab instanceof BaseTerminalTabComponent) {
|
||||||
|
cb(tab)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cb(this)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user