fix(tabby-terminal): prevent copying on select when search find next/previous

This commit is contained in:
Clem Fern 2023-04-28 20:03:55 +02:00
parent bb6ed52291
commit d3adbd03d4

View file

@ -69,6 +69,7 @@ export class XTermFrontend extends Frontend {
private resizeHandler: () => void
private configuredTheme: ITheme = {}
private copyOnSelect = false
private preventNextOnSelectionChangeEvent = false
private search = new SearchAddon()
private searchState: SearchState = { resultCount: 0 }
private fitAddon = new FitAddon()
@ -116,8 +117,11 @@ export class XTermFrontend extends Frontend {
this.title.next(title)
})
this.xterm.onSelectionChange(() => {
if (this.copyOnSelect && this.getSelection()) {
this.copySelection()
if (this.getSelection()) {
if (this.copyOnSelect && !this.preventNextOnSelectionChangeEvent) {
this.copySelection()
}
this.preventNextOnSelectionChangeEvent = false
}
})
this.xterm.onBell(() => {
@ -444,12 +448,18 @@ export class XTermFrontend extends Frontend {
}
findNext (term: string, searchOptions?: SearchOptions): SearchState {
if (this.copyOnSelect) {
this.preventNextOnSelectionChangeEvent = true
}
return this.wrapSearchResult(
this.search.findNext(term, this.getSearchOptions(searchOptions)),
)
}
findPrevious (term: string, searchOptions?: SearchOptions): SearchState {
if (this.copyOnSelect) {
this.preventNextOnSelectionChangeEvent = true
}
return this.wrapSearchResult(
this.search.findPrevious(term, this.getSearchOptions(searchOptions)),
)