@@ -106,8 +106,6 @@ to assist developers in writing, debugging, and understanding code directly from
tui.New(app),
tea.WithAltScreen(),
tea.WithContext(ctx),
- tea.WithMouseCellMotion(), // Use cell motion instead of all motion to reduce event flooding- tea.WithFilter(tui.MouseEventFilter), // Filter mouse events based on focus state
)
go app.Subscribe(program)
@@ -31,29 +31,6 @@ import (
"github.com/charmbracelet/lipgloss/v2"
)
-// MouseEventFilter filters mouse events based on the current focus state-// This is used with tea.WithFilter to prevent mouse scroll events from-// interfering with typing performance in the editor-func MouseEventFilter(m tea.Model, msg tea.Msg) tea.Msg {- // Only filter mouse events- switch msg.(type) {- case tea.MouseWheelMsg, tea.MouseMotionMsg:- // Check if we have an appModel and if editor is focused- if appModel, ok := m.(*appModel); ok {- if appModel.currentPage == chat.ChatPageID {- if chatPage, ok := appModel.pages[appModel.currentPage].(chat.ChatPage); ok {- // If editor is focused (not chatFocused), filter out mouse wheel/motion events- if !chatPage.IsChatFocused() {- return nil // Filter out the event- }- }- }- }- }- // Allow all other events to pass through- return msg-}-
// appModel represents the main application model that manages pages, dialogs, and UI state.
type appModel struct {
wWidth, wHeight int // Window dimensions
@@ -88,8 +65,6 @@ func (a appModel) Init() tea.Cmd {
cmd = a.status.Init()
cmds = append(cmds, cmd)
- cmds = append(cmds, tea.EnableMouseAllMotion)-
return tea.Batch(cmds...)
}