filter.go
1package model
2
3import (
4 "time"
5
6 tea "charm.land/bubbletea/v2"
7)
8
9var lastMouseEvent time.Time
10
11func MouseEventFilter(m tea.Model, msg tea.Msg) tea.Msg {
12 switch msg.(type) {
13 case tea.MouseWheelMsg, tea.MouseMotionMsg:
14 now := time.Now()
15 // trackpad is sending too many requests
16 if now.Sub(lastMouseEvent) < 15*time.Millisecond {
17 return nil
18 }
19 lastMouseEvent = now
20 }
21 return msg
22}