xC + frontends: merge M-! into M-a + reversed M-A
Both WeeChat and irssi merge these two by prioritising highlights when you press M-a.
This commit is contained in:
@@ -1420,7 +1420,7 @@ func (l *customLayout) Layout(objects []fyne.CanvasObject, size fyne.Size) {
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
// rotatedBuffers returns buffer indexes starting with the current buffer.
|
||||
// rotatedBuffers returns buffer indexes starting after the current buffer.
|
||||
func rotatedBuffers() []int {
|
||||
r, start := make([]int, len(buffers)), 0
|
||||
for i := range buffers {
|
||||
@@ -1458,6 +1458,29 @@ func actionBufferLast() {
|
||||
}
|
||||
}
|
||||
|
||||
func actionBufferActivity(backwards bool) {
|
||||
r := rotatedBuffers()
|
||||
if len(r) == 0 {
|
||||
return
|
||||
}
|
||||
r = r[:len(r)-1]
|
||||
if backwards {
|
||||
slices.Reverse(r)
|
||||
}
|
||||
for _, i := range r {
|
||||
if buffers[i].highlighted {
|
||||
bufferActivate(buffers[i].bufferName)
|
||||
return
|
||||
}
|
||||
}
|
||||
for _, i := range r {
|
||||
if buffers[i].newMessages != 0 {
|
||||
bufferActivate(buffers[i].bufferName)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var shortcuts = map[desktop.CustomShortcut]func(){
|
||||
{
|
||||
KeyName: fyne.KeyPageUp,
|
||||
@@ -1487,28 +1510,17 @@ var shortcuts = map[desktop.CustomShortcut]func(){
|
||||
KeyName: fyne.KeyTab,
|
||||
Modifier: fyne.KeyModifierAlt,
|
||||
}: actionBufferLast,
|
||||
{
|
||||
// XXX: This makes an assumption on the keyboard layout (we want '!').
|
||||
KeyName: fyne.Key1,
|
||||
Modifier: fyne.KeyModifierAlt | fyne.KeyModifierShift,
|
||||
}: func() {
|
||||
for _, i := range rotatedBuffers() {
|
||||
if buffers[i].highlighted {
|
||||
bufferActivate(buffers[i].bufferName)
|
||||
break
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
KeyName: fyne.KeyA,
|
||||
Modifier: fyne.KeyModifierAlt,
|
||||
}: func() {
|
||||
for _, i := range rotatedBuffers() {
|
||||
if buffers[i].newMessages != 0 {
|
||||
bufferActivate(buffers[i].bufferName)
|
||||
break
|
||||
}
|
||||
}
|
||||
actionBufferActivity(false)
|
||||
},
|
||||
{
|
||||
KeyName: fyne.KeyA,
|
||||
Modifier: fyne.KeyModifierAlt | fyne.KeyModifierShift,
|
||||
}: func() {
|
||||
actionBufferActivity(true)
|
||||
},
|
||||
{
|
||||
KeyName: fyne.KeyH,
|
||||
|
||||
Reference in New Issue
Block a user