filter.go 395 B

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