Skip to content

Commit

Permalink
make ctrl-f select the search query
Browse files Browse the repository at this point in the history
  • Loading branch information
Eugeny committed Oct 21, 2022
1 parent 0e529ea commit aa439cc
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 15 deletions.
21 changes: 14 additions & 7 deletions tabby-core/src/services/hotkeys.service.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Injectable, Inject, NgZone, EventEmitter } from '@angular/core'
import { Observable, Subject } from 'rxjs'
import { Observable, Subject, filter } from 'rxjs'
import { HotkeyDescription, HotkeyProvider } from '../api/hotkeyProvider'
import { KeyEventData, getKeyName, Keystroke, KeyName, getKeystrokeName, metaKeyName, altKeyName } from './hotkeys.util'
import { ConfigService } from './config.service'
Expand Down Expand Up @@ -28,7 +28,16 @@ export class HotkeysService {
/**
* Fired for each recognized hotkey
*/
get hotkey$ (): Observable<string> { return this._hotkey }
get unfilteredHotkey$ (): Observable<string> { return this._hotkey }

/**
* Fired for each recognized hotkey
*/
get hotkey$ (): Observable<string> {
return this._hotkey.pipe(filter(() => {
return document.querySelectorAll('input:focus').length === 0
}))
}

/**
* Fired for once hotkey is released
Expand Down Expand Up @@ -292,11 +301,9 @@ export class HotkeysService {
this.emitHotkeyOff(this.pressedHotkey)
}
}
if (document.querySelectorAll('input:focus').length === 0) {
console.debug('Matched hotkey', hotkey)
this._hotkey.next(hotkey)
this.pressedHotkey = hotkey
}
console.debug('Matched hotkey', hotkey)
this._hotkey.next(hotkey)
this.pressedHotkey = hotkey
this.recognitionPhase = false
}

Expand Down
22 changes: 14 additions & 8 deletions tabby-terminal/src/api/baseTerminalTab.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,20 @@ export class BaseTerminalTabComponent extends BaseTabComponent implements OnInit
this.logger = this.log.create('baseTerminalTab')
this.setTitle(this.translate.instant('Terminal'))

this.subscribeUntilDestroyed(this.hotkeys.unfilteredHotkey$, async hotkey => {
if (!this.hasFocus) {
return
}
if (hotkey === 'search') {
this.showSearchPanel = true
setImmediate(() => {
const input = this.element.nativeElement.querySelector('.search-input')
input?.focus()
input?.select()
})
}
})

this.subscribeUntilDestroyed(this.hotkeys.hotkey$, async hotkey => {
if (!this.hasFocus) {
return
Expand Down Expand Up @@ -265,14 +279,6 @@ export class BaseTerminalTabComponent extends BaseTabComponent implements OnInit
}[this.hostApp.platform])
})
break
case 'search':
this.showSearchPanel = true
setImmediate(() => {
const input = this.element.nativeElement.querySelector('.search-input')
input?.focus()
input?.select()
})
break
case 'pane-focus-all':
this.focusAllPanes()
break
Expand Down

0 comments on commit aa439cc

Please sign in to comment.