Beep when action could not be performed

This commit is contained in:
Kovid Goyal
2022-10-06 21:51:21 +05:30
parent 48f1690913
commit 27418eed88
2 changed files with 12 additions and 2 deletions

View File

@@ -104,7 +104,12 @@ func (self *Readline) End() {
}
func (self *Readline) OnKeyEvent(event *loop.KeyEvent) error {
return self.handle_key_event(event)
err := self.handle_key_event(event)
if err == ErrCouldNotPerformAction {
err = nil
self.loop.Beep()
}
return err
}
func (self *Readline) OnText(text string, from_key_event bool, in_bracketed_paste bool) error {

View File

@@ -3,6 +3,7 @@
package readline
import (
"errors"
"fmt"
"kitty/tools/tui/loop"
@@ -30,6 +31,8 @@ func action_for_key_event(event *loop.KeyEvent, shortcuts map[string]Action) Act
return ActionNil
}
var ErrCouldNotPerformAction = errors.New("Could not perform the specified action")
func (self *Readline) handle_key_event(event *loop.KeyEvent) error {
if event.Text != "" {
return nil
@@ -37,7 +40,9 @@ func (self *Readline) handle_key_event(event *loop.KeyEvent) error {
ac := action_for_key_event(event, default_shortcuts)
if ac != ActionNil {
event.Handled = true
self.perform_action(ac, 1)
if !self.perform_action(ac, 1) {
return ErrCouldNotPerformAction
}
}
return nil
}