diff --git a/xA/xA.go b/xA/xA.go index a922871..f1ebdb7 100644 --- a/xA/xA.go +++ b/xA/xA.go @@ -393,10 +393,10 @@ func bufferScrollToBottom() { func bufferPushLine(b *buffer, line bufferLine) { b.lines = append(b.lines, line) - // Fyne's text layouting is extremely slow. + // This also noticeably improves performance. // The limit could be made configurable, // and we could use a ring buffer approach to storing the lines. - if len(b.lines) > 100 { + if len(b.lines) > 1000 { b.lines = slices.Delete(b.lines, 0, 1) } } @@ -1138,17 +1138,10 @@ func relayRun() { }, nil) relayMessages := relayMakeReceiver(backendContext, backendConn) -Loop: - for { - select { - case m, ok := <-relayMessages: - if !ok { - break Loop - } - fyne.DoAndWait(func() { - relayProcessMessage(&m) - }) - } + for m := range relayMessages { + fyne.DoAndWait(func() { + relayProcessMessage(&m) + }) } fyne.DoAndWait(func() { wConnect.Show() @@ -1304,11 +1297,11 @@ func (e *inputEntry) KeyDown(key *fyne.KeyEvent) { } switch { - case modifiedKey.Modifier == fyne.KeyModifierControl && + case modifiedKey.Modifier == fyne.KeyModifierAlt && modifiedKey.KeyName == fyne.KeyP: inputUp() return - case modifiedKey.Modifier == fyne.KeyModifierControl && + case modifiedKey.Modifier == fyne.KeyModifierAlt && modifiedKey.KeyName == fyne.KeyN: inputDown() return @@ -1443,27 +1436,47 @@ func rotatedBuffers() []int { return r } +func actionBufferPrevious() { + if r := rotatedBuffers(); len(r) <= 0 { + } else if i := r[len(r)-1]; i == 0 { + bufferActivate(buffers[len(buffers)-1].bufferName) + } else { + bufferActivate(buffers[i-1].bufferName) + } +} + +func actionBufferNext() { + if r := rotatedBuffers(); len(r) <= 0 { + } else { + bufferActivate(buffers[r[0]].bufferName) + } +} + var shortcuts = map[desktop.CustomShortcut]func(){ { KeyName: fyne.KeyPageUp, Modifier: fyne.KeyModifierControl, - }: func() { - if r := rotatedBuffers(); len(r) <= 0 { - } else if i := r[len(r)-1]; i == 0 { - bufferActivate(buffers[len(buffers)-1].bufferName) - } else { - bufferActivate(buffers[i-1].bufferName) - } - }, + }: actionBufferPrevious, + { + KeyName: fyne.KeyPageUp, + Modifier: fyne.KeyModifierAlt, + }: actionBufferPrevious, + { + KeyName: fyne.KeyF5, + Modifier: 0, + }: actionBufferPrevious, { KeyName: fyne.KeyPageDown, Modifier: fyne.KeyModifierControl, - }: func() { - if r := rotatedBuffers(); len(r) <= 0 { - } else { - bufferActivate(buffers[r[0]].bufferName) - } - }, + }: actionBufferNext, + { + KeyName: fyne.KeyPageDown, + Modifier: fyne.KeyModifierAlt, + }: actionBufferNext, + { + KeyName: fyne.KeyF6, + Modifier: 0, + }: actionBufferNext, { KeyName: fyne.KeyTab, Modifier: fyne.KeyModifierAlt,