xA: mildly improve the experience
Fyne got a bit faster at layouting, but showing the log still kills it.
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user