mirror of
https://github.com/kovidgoyal/kitty
synced 2026-06-06 01:05:48 +02:00
Implement focus tracking in kitten infrastructure
This commit is contained in:
@@ -121,6 +121,9 @@ type Loop struct {
|
||||
|
||||
// Called when the terminal's color scheme changes
|
||||
OnColorSchemeChange func(ColorPreference) error
|
||||
|
||||
// Called on focus in/out events
|
||||
OnFocusChange func(bool) error
|
||||
}
|
||||
|
||||
func New(options ...func(self *Loop)) (*Loop, error) {
|
||||
|
||||
@@ -113,6 +113,12 @@ func (self *Loop) handle_csi(raw []byte) (err error) {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
} else if csi == "I" || csi == "O" {
|
||||
if self.OnFocusChange != nil {
|
||||
return self.OnFocusChange(csi == "I")
|
||||
}
|
||||
return nil
|
||||
|
||||
}
|
||||
ke := KeyEventFromCSI(csi)
|
||||
if ke != nil {
|
||||
|
||||
@@ -129,9 +129,9 @@ func (self *TerminalStateOptions) SetStateEscapeCodes() string {
|
||||
}
|
||||
sb.WriteString(DECSACE_DEFAULT_REGION_SELECT)
|
||||
reset_modes(&sb,
|
||||
IRM, DECKM, DECSCNM, BRACKETED_PASTE, FOCUS_TRACKING,
|
||||
IRM, DECKM, DECSCNM, BRACKETED_PASTE,
|
||||
MOUSE_BUTTON_TRACKING, MOUSE_MOTION_TRACKING, MOUSE_MOVE_TRACKING, MOUSE_UTF8_MODE, MOUSE_SGR_MODE)
|
||||
set_modes(&sb, DECARM, DECAWM, DECTCEM)
|
||||
set_modes(&sb, DECARM, DECAWM, DECTCEM, FOCUS_TRACKING)
|
||||
if self.in_band_resize_notification {
|
||||
set_modes(&sb, INBAND_RESIZE_NOTIFICATION)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user