summaryrefslogtreecommitdiff
path: root/src/tui/tcell.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/tui/tcell.go')
-rw-r--r--src/tui/tcell.go157
1 files changed, 156 insertions, 1 deletions
diff --git a/src/tui/tcell.go b/src/tui/tcell.go
index 0f80882e..3bf28797 100644
--- a/src/tui/tcell.go
+++ b/src/tui/tcell.go
@@ -354,6 +354,8 @@ func (r *FullscreenRenderer) GetChar() Event {
shift := (mods & tcell.ModShift) > 0
ctrlAlt := ctrl && alt
altShift := alt && shift
+ ctrlShift := ctrl && shift
+ ctrlAltShift := ctrl && alt && shift
keyfn := func(r rune) Event {
if alt {
@@ -380,8 +382,11 @@ func (r *FullscreenRenderer) GetChar() Event {
case tcell.KeyCtrlH:
switch ev.Rune() {
case 0:
+ if ctrlAlt {
+ return Event{CtrlAltBackspace, 0, nil}
+ }
if ctrl {
- return Event{Backspace, 0, nil}
+ return Event{CtrlBackspace, 0, nil}
}
case rune(tcell.KeyCtrlH):
switch {
@@ -442,6 +447,9 @@ func (r *FullscreenRenderer) GetChar() Event {
return Event{CtrlSlash, 0, nil}
// section 3: (Alt)+Backspace2
case tcell.KeyBackspace2:
+ if ctrl {
+ return Event{CtrlBackspace, 0, nil}
+ }
if alt {
return Event{AltBackspace, 0, nil}
}
@@ -449,9 +457,21 @@ func (r *FullscreenRenderer) GetChar() Event {
// section 4: (Alt+Shift)+Key(Up|Down|Left|Right)
case tcell.KeyUp:
+ if ctrlAltShift {
+ return Event{CtrlAltShiftUp, 0, nil}
+ }
+ if ctrlAlt {
+ return Event{CtrlAltUp, 0, nil}
+ }
+ if ctrlShift {
+ return Event{CtrlShiftUp, 0, nil}
+ }
if altShift {
return Event{AltShiftUp, 0, nil}
}
+ if ctrl {
+ return Event{CtrlUp, 0, nil}
+ }
if shift {
return Event{ShiftUp, 0, nil}
}
@@ -460,9 +480,21 @@ func (r *FullscreenRenderer) GetChar() Event {
}
return Event{Up, 0, nil}
case tcell.KeyDown:
+ if ctrlAltShift {
+ return Event{CtrlAltShiftDown, 0, nil}
+ }
+ if ctrlAlt {
+ return Event{CtrlAltDown, 0, nil}
+ }
+ if ctrlShift {
+ return Event{CtrlShiftDown, 0, nil}
+ }
if altShift {
return Event{AltShiftDown, 0, nil}
}
+ if ctrl {
+ return Event{CtrlDown, 0, nil}
+ }
if shift {
return Event{ShiftDown, 0, nil}
}
@@ -471,9 +503,21 @@ func (r *FullscreenRenderer) GetChar() Event {
}
return Event{Down, 0, nil}
case tcell.KeyLeft:
+ if ctrlAltShift {
+ return Event{CtrlAltShiftLeft, 0, nil}
+ }
+ if ctrlAlt {
+ return Event{CtrlAltLeft, 0, nil}
+ }
+ if ctrlShift {
+ return Event{CtrlShiftLeft, 0, nil}
+ }
if altShift {
return Event{AltShiftLeft, 0, nil}
}
+ if ctrl {
+ return Event{CtrlLeft, 0, nil}
+ }
if shift {
return Event{ShiftLeft, 0, nil}
}
@@ -482,9 +526,21 @@ func (r *FullscreenRenderer) GetChar() Event {
}
return Event{Left, 0, nil}
case tcell.KeyRight:
+ if ctrlAltShift {
+ return Event{CtrlAltShiftRight, 0, nil}
+ }
+ if ctrlAlt {
+ return Event{CtrlAltRight, 0, nil}
+ }
+ if ctrlShift {
+ return Event{CtrlShiftRight, 0, nil}
+ }
if altShift {
return Event{AltShiftRight, 0, nil}
}
+ if ctrl {
+ return Event{CtrlRight, 0, nil}
+ }
if shift {
return Event{ShiftRight, 0, nil}
}
@@ -497,20 +553,119 @@ func (r *FullscreenRenderer) GetChar() Event {
case tcell.KeyInsert:
return Event{Insert, 0, nil}
case tcell.KeyHome:
+ if ctrlAltShift {
+ return Event{CtrlAltShiftHome, 0, nil}
+ }
+ if ctrlAlt {
+ return Event{CtrlAltHome, 0, nil}
+ }
+ if ctrlShift {
+ return Event{CtrlShiftHome, 0, nil}
+ }
+ if altShift {
+ return Event{AltShiftHome, 0, nil}
+ }
+ if ctrl {
+ return Event{CtrlHome, 0, nil}
+ }
+ if shift {
+ return Event{ShiftHome, 0, nil}
+ }
+ if alt {
+ return Event{AltHome, 0, nil}
+ }
return Event{Home, 0, nil}
case tcell.KeyDelete:
+ if ctrlAltShift {
+ return Event{CtrlAltShiftDelete, 0, nil}
+ }
+ if ctrlAlt {
+ return Event{CtrlAltDelete, 0, nil}
+ }
+ if ctrlShift {
+ return Event{CtrlShiftDelete, 0, nil}
+ }
+ if altShift {
+ return Event{AltShiftDelete, 0, nil}
+ }
if ctrl {
return Event{CtrlDelete, 0, nil}
}
+ if alt {
+ return Event{AltDelete, 0, nil}
+ }
if shift {
return Event{ShiftDelete, 0, nil}
}
return Event{Delete, 0, nil}
case tcell.KeyEnd:
+ if ctrlAltShift {
+ return Event{CtrlAltShiftEnd, 0, nil}
+ }
+ if ctrlAlt {
+ return Event{CtrlAltEnd, 0, nil}
+ }
+ if ctrlShift {
+ return Event{CtrlShiftEnd, 0, nil}
+ }
+ if altShift {
+ return Event{AltShiftEnd, 0, nil}
+ }
+ if ctrl {
+ return Event{CtrlEnd, 0, nil}
+ }
+ if shift {
+ return Event{ShiftEnd, 0, nil}
+ }
+ if alt {
+ return Event{AltEnd, 0, nil}
+ }
return Event{End, 0, nil}
case tcell.KeyPgUp:
+ if ctrlAltShift {
+ return Event{CtrlAltShiftPageUp, 0, nil}
+ }
+ if ctrlAlt {
+ return Event{CtrlAltPageUp, 0, nil}
+ }
+ if ctrlShift {
+ return Event{CtrlShiftPageUp, 0, nil}
+ }
+ if altShift {
+ return Event{AltShiftPageUp, 0, nil}
+ }
+ if ctrl {
+ return Event{CtrlPageUp, 0, nil}
+ }
+ if shift {
+ return Event{ShiftPageUp, 0, nil}
+ }
+ if alt {
+ return Event{AltPageUp, 0, nil}
+ }
return Event{PageUp, 0, nil}
case tcell.KeyPgDn:
+ if ctrlAltShift {
+ return Event{CtrlAltShiftPageDown, 0, nil}
+ }
+ if ctrlAlt {
+ return Event{CtrlAltPageDown, 0, nil}
+ }
+ if ctrlShift {
+ return Event{CtrlShiftPageDown, 0, nil}
+ }
+ if altShift {
+ return Event{AltShiftPageDown, 0, nil}
+ }
+ if ctrl {
+ return Event{CtrlPageDown, 0, nil}
+ }
+ if shift {
+ return Event{ShiftPageDown, 0, nil}
+ }
+ if alt {
+ return Event{AltPageDown, 0, nil}
+ }
return Event{PageDown, 0, nil}
case tcell.KeyBacktab:
return Event{ShiftTab, 0, nil}