@@ -17,7 +17,7 @@ import (
17
17
"gitlab.com/tslocum/cbind"
18
18
)
19
19
20
- var VERSION string = "v1.0.2 "
20
+ var VERSION string = "v1.0.3 "
21
21
22
22
var sndTxt string = ""
23
23
var currentReceiver messages.Chat = messages.Chat {}
@@ -248,38 +248,27 @@ func handleMessageCommand(command string) func(ev *tcell.EventKey) *tcell.EventK
248
248
}
249
249
}
250
250
251
- func handleMessagesUp (ev * tcell.EventKey ) * tcell.EventKey {
252
- if curRegions == nil || len (curRegions ) == 0 {
253
- return nil
254
- }
255
- hls := textView .GetHighlights ()
256
- if len (hls ) > 0 {
257
- newId := GetOffsetMsgId (hls [0 ], - 1 )
258
- if newId != "" {
259
- textView .Highlight (newId )
251
+ func handleMessagesMove (amount int ) func (ev * tcell.EventKey ) * tcell.EventKey {
252
+ return func (ev * tcell.EventKey ) * tcell.EventKey {
253
+ if curRegions == nil || len (curRegions ) == 0 {
254
+ return nil
260
255
}
261
- } else {
262
- textView .Highlight (curRegions [len (curRegions )- 1 ].Id )
263
- }
264
- textView .ScrollToHighlight ()
265
- return nil
266
- }
267
-
268
- func handleMessagesDown (ev * tcell.EventKey ) * tcell.EventKey {
269
- if curRegions == nil || len (curRegions ) == 0 {
270
- return nil
271
- }
272
- hls := textView .GetHighlights ()
273
- if len (hls ) > 0 {
274
- newId := GetOffsetMsgId (hls [0 ], 1 )
275
- if newId != "" {
276
- textView .Highlight (newId )
256
+ hls := textView .GetHighlights ()
257
+ if len (hls ) > 0 {
258
+ newId := GetOffsetMsgId (hls [0 ], amount )
259
+ if newId != "" {
260
+ textView .Highlight (newId )
261
+ }
262
+ } else {
263
+ if amount < 0 {
264
+ textView .Highlight (curRegions [0 ].Id )
265
+ } else {
266
+ textView .Highlight (curRegions [len (curRegions )- 1 ].Id )
267
+ }
277
268
}
278
- } else {
279
- textView . Highlight ( curRegions [ 0 ]. Id )
269
+ textView . ScrollToHighlight ()
270
+ return nil
280
271
}
281
- textView .ScrollToHighlight ()
282
- return nil
283
272
}
284
273
285
274
func handleChatPanelUp (ev * tcell.EventKey ) * tcell.EventKey {
@@ -356,7 +345,7 @@ func LoadShortcuts() {
356
345
PrintErrorMsg ("command_help:" , err )
357
346
}
358
347
app .SetInputCapture (keyBindings .Capture )
359
- // bindings for text input
348
+ // bindings for chat message text view
360
349
keysMessages := cbind .NewConfiguration ()
361
350
if err := keysMessages .Set (config .Config .Keymap .MessageDownload , handleMessageCommand ("download" )); err != nil {
362
351
PrintErrorMsg ("message_download:" , err )
@@ -383,12 +372,16 @@ func LoadShortcuts() {
383
372
PrintErrorMsg ("message_revoke:" , err )
384
373
}
385
374
keysMessages .SetKey (tcell .ModNone , tcell .KeyEscape , handleExitMessages )
386
- keysMessages .SetKey (tcell .ModNone , tcell .KeyUp , handleMessagesUp )
387
- keysMessages .SetKey (tcell .ModNone , tcell .KeyDown , handleMessagesDown )
388
- keysMessages .SetRune (tcell .ModNone , 'k' , handleMessagesUp )
389
- keysMessages .SetRune (tcell .ModNone , 'j' , handleMessagesDown )
375
+ keysMessages .SetKey (tcell .ModNone , tcell .KeyUp , handleMessagesMove (- 1 ))
376
+ keysMessages .SetKey (tcell .ModNone , tcell .KeyDown , handleMessagesMove (1 ))
377
+ keysMessages .SetKey (tcell .ModNone , tcell .KeyPgUp , handleMessagesMove (- 10 ))
378
+ keysMessages .SetKey (tcell .ModNone , tcell .KeyPgDn , handleMessagesMove (10 ))
379
+ keysMessages .SetRune (tcell .ModNone , 'k' , handleMessagesMove (- 1 ))
380
+ keysMessages .SetRune (tcell .ModNone , 'j' , handleMessagesMove (1 ))
390
381
keysMessages .SetRune (tcell .ModNone , 'g' , handleMessagesFirst )
391
382
keysMessages .SetRune (tcell .ModNone , 'G' , handleMessagesLast )
383
+ keysMessages .SetRune (tcell .ModCtrl , 'u' , handleMessagesMove (- 10 ))
384
+ keysMessages .SetRune (tcell .ModCtrl , 'd' , handleMessagesMove (10 ))
392
385
textView .SetInputCapture (keysMessages .Capture )
393
386
keysChatPanel := cbind .NewConfiguration ()
394
387
keysChatPanel .SetRune (tcell .ModCtrl , 'u' , handleChatPanelUp )
0 commit comments