summaryrefslogtreecommitdiff
path: root/ui/buffers.go
diff options
context:
space:
mode:
authordelthas <delthas@dille.cc>2022-04-20 17:23:54 +0200
committerdelthas <delthas@dille.cc>2022-04-20 17:23:54 +0200
commit20c2b265c504ae47b959e60088aa6da41bef3263 (patch)
tree7451e1397d8b87d98843a5fa5f48326a9a779e07 /ui/buffers.go
parentShow/hide the channel & member list with F7/F8 (diff)
Scroll horizontal channel list with the mouse wheel
This is inspired by a patch by mooff. The horizontal channel list can now be scrolled with the mouse wheel.
Diffstat (limited to 'ui/buffers.go')
-rw-r--r--ui/buffers.go25
1 files changed, 22 insertions, 3 deletions
diff --git a/ui/buffers.go b/ui/buffers.go
index 69d1aa0..021ddb1 100644
--- a/ui/buffers.go
+++ b/ui/buffers.go
@@ -593,10 +593,29 @@ func (bs *BufferList) DrawVerticalBufferList(screen tcell.Screen, x0, y0, width,
}
}
-func (bs *BufferList) DrawHorizontalBufferList(screen tcell.Screen, x0, y0, width int) {
- x := x0
+func (bs *BufferList) DrawHorizontalBufferList(screen tcell.Screen, x0, y0, width int, offset *int) {
+ x := width
+ for i := len(bs.list) - 1; i >= 0; i-- {
+ b := &bs.list[i]
+ x--
+ if b.title == "" {
+ x -= stringWidth(b.netName)
+ } else {
+ x -= stringWidth(b.title)
+ }
+ if 0 < b.highlights {
+ x -= 2 + len(fmt.Sprintf("%d", b.highlights))
+ }
+ if x <= 10 {
+ break
+ }
+ if *offset > i {
+ *offset = i
+ }
+ }
+ x = x0
- for i, b := range bs.list {
+ for i, b := range bs.list[*offset:] {
if width <= x-x0 {
break
}