From 3d9114dea9e655c101f32b7d5f27a1d5120d5917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jana=20D=C3=B6nszelmann?= Date: Wed, 25 Feb 2026 15:18:45 +0100 Subject: [PATCH] scrolling again --- src/tui/mod.rs | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/src/tui/mod.rs b/src/tui/mod.rs index d80095b..c048800 100644 --- a/src/tui/mod.rs +++ b/src/tui/mod.rs @@ -1,5 +1,8 @@ use crossterm::{ - event::{DisableMouseCapture, EnableMouseCapture, MouseButton, MouseEventKind}, + event::{ + DisableMouseCapture, EnableMouseCapture, KeyEventKind, KeyEventState, MouseButton, + MouseEventKind, + }, terminal::{EnterAlternateScreen, LeaveAlternateScreen}, }; use ratatui_themes::{Theme, ThemeName}; @@ -28,7 +31,7 @@ use ratatui::{ crossterm::event::{self, Event, KeyCode, KeyEvent, KeyModifiers}, layout::{Constraint, HorizontalAlignment, Layout, Rect}, prelude::CrosstermBackend, - style::Style, + style::{Modifier, Style}, text::Line, widgets::{ Block, Clear, List, ListItem, ListState, Padding, Paragraph, StatefulWidget, Widget, Wrap, @@ -400,6 +403,38 @@ impl App { } Event::FocusGained => {} Event::FocusLost => {} + Event::Mouse(mouse) if mouse.kind == MouseEventKind::ScrollDown => { + if self + .handle_generic_keycode( + KeyEvent { + code: KeyCode::Down, + modifiers: KeyModifiers::empty(), + kind: KeyEventKind::Press, + state: KeyEventState::empty(), + }, + terminal, + ) + .is_break() + { + break Ok(()); + } + } + Event::Mouse(mouse) if mouse.kind == MouseEventKind::ScrollUp => { + if self + .handle_generic_keycode( + KeyEvent { + code: KeyCode::Up, + modifiers: KeyModifiers::empty(), + kind: KeyEventKind::Press, + state: KeyEventState::empty(), + }, + terminal, + ) + .is_break() + { + break Ok(()); + } + } Event::Mouse(mouse_event) => { if let MouseEventKind::Up(MouseButton::Left) = mouse_event.kind { if let Tab::LogViewer(lv) = self.current_tab() {