File tree Expand file tree Collapse file tree 5 files changed +16
-34
lines changed
Expand file tree Collapse file tree 5 files changed +16
-34
lines changed Original file line number Diff line number Diff line change @@ -176,31 +176,18 @@ modSearch:
176176 // see if the key is in bindingKeys with the Ctrl prefix.
177177 k = string (unicode .ToUpper (rune (k [0 ]))) + k [1 :]
178178 if code , ok := keyEvents ["Ctrl" + k ]; ok {
179- var r tcell.Key
180- // Special case for escape, for some reason tcell doesn't send it with the esc character
181- if code < 256 && code != 27 {
182- r = code
183- }
184- // It is, we're done.
185179 return KeyEvent {
186180 code : code ,
187181 mod : modifiers ,
188- r : rune (r ),
189182 }, true
190183 }
191184 }
192185
193186 // See if we can find the key in bindingKeys
194187 if code , ok := keyEvents [k ]; ok {
195- var r tcell.Key
196- // Special case for escape, for some reason tcell doesn't send it with the esc character
197- if code < 256 && code != 27 {
198- r = code
199- }
200188 return KeyEvent {
201189 code : code ,
202190 mod : modifiers ,
203- r : rune (r ),
204191 }, true
205192 }
206193
Original file line number Diff line number Diff line change @@ -469,11 +469,7 @@ func (h *BufPane) HandleEvent(event tcell.Event) {
469469 h .paste (e .Text ())
470470 h .Relocate ()
471471 case * tcell.EventKey :
472- ke := KeyEvent {
473- code : e .Key (),
474- mod : metaToAlt (e .Modifiers ()),
475- r : e .Rune (),
476- }
472+ ke := keyEvent (e )
477473
478474 done := h .DoKeyEvent (ke )
479475 if ! done && e .Key () == tcell .KeyRune {
Original file line number Diff line number Diff line change @@ -44,6 +44,17 @@ func metaToAlt(mod tcell.ModMask) tcell.ModMask {
4444 return mod
4545}
4646
47+ func keyEvent (e * tcell.EventKey ) KeyEvent {
48+ ke := KeyEvent {
49+ code : e .Key (),
50+ mod : metaToAlt (e .Modifiers ()),
51+ }
52+ if e .Key () == tcell .KeyRune {
53+ ke .r = e .Rune ()
54+ }
55+ return ke
56+ }
57+
4758func (k KeyEvent ) Name () string {
4859 if k .any {
4960 return "<any>"
@@ -68,7 +79,7 @@ func (k KeyEvent) Name() string {
6879 if k .code == tcell .KeyRune {
6980 s = string (k .r )
7081 } else {
71- s = fmt .Sprintf ("Key[%d,%d ]" , k .code , int ( k . r ) )
82+ s = fmt .Sprintf ("Key[%d]" , k .code )
7283 }
7384 }
7485 if len (m ) != 0 {
@@ -155,11 +166,7 @@ func (m MouseEvent) Name() string {
155166func ConstructEvent (event tcell.Event ) (Event , error ) {
156167 switch e := event .(type ) {
157168 case * tcell.EventKey :
158- return KeyEvent {
159- code : e .Key (),
160- mod : metaToAlt (e .Modifiers ()),
161- r : e .Rune (),
162- }, nil
169+ return keyEvent (e ), nil
163170 case * tcell.EventRaw :
164171 return RawEvent {
165172 esc : e .EscSeq (),
Original file line number Diff line number Diff line change @@ -86,11 +86,7 @@ func (h *InfoPane) HandleEvent(event tcell.Event) {
8686 case * tcell.EventResize :
8787 // TODO
8888 case * tcell.EventKey :
89- ke := KeyEvent {
90- code : e .Key (),
91- mod : metaToAlt (e .Modifiers ()),
92- r : e .Rune (),
93- }
89+ ke := keyEvent (e )
9490
9591 done := h .DoKeyEvent (ke )
9692 hasYN := h .HasYN
Original file line number Diff line number Diff line change @@ -125,11 +125,7 @@ func (t *TermPane) Unsplit() {
125125// copy-paste
126126func (t * TermPane ) HandleEvent (event tcell.Event ) {
127127 if e , ok := event .(* tcell.EventKey ); ok {
128- ke := KeyEvent {
129- code : e .Key (),
130- mod : metaToAlt (e .Modifiers ()),
131- r : e .Rune (),
132- }
128+ ke := keyEvent (e )
133129 action , more := TermBindings .NextEvent (ke , nil )
134130
135131 if ! more {
You can’t perform that action at this time.
0 commit comments