Skip to content

Commit 500a8c7

Browse files
committed
Add ability to scroll Footer without holding shift
1 parent 5cb6cd0 commit 500a8c7

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

src/textual/events.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
from dataclasses import dataclass
1717
from pathlib import Path
1818
from typing import TYPE_CHECKING, Type, TypeVar
19-
from typing_extensions import Self
2019

2120
import rich.repr
2221
from rich.style import Style
22+
from typing_extensions import Self
2323

2424
from textual._types import CallbackType
2525
from textual.geometry import Offset, Size
@@ -539,7 +539,7 @@ class MouseScrollDown(MouseEvent, bubble=True, verbose=True):
539539
"""Sent when the mouse wheel is scrolled *down*.
540540
541541
- [X] Bubbles
542-
- [ ] Verbose
542+
- [X] Verbose
543543
"""
544544

545545

@@ -548,7 +548,7 @@ class MouseScrollUp(MouseEvent, bubble=True, verbose=True):
548548
"""Sent when the mouse wheel is scrolled *up*.
549549
550550
- [X] Bubbles
551-
- [ ] Verbose
551+
- [X] Verbose
552552
"""
553553

554554

src/textual/widgets/_footer.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import rich.repr
77
from rich.text import Text
88

9+
from textual import events
910
from textual.app import ComposeResult
1011
from textual.binding import Binding
1112
from textual.containers import ScrollableContainer
@@ -249,6 +250,20 @@ async def bindings_changed(self, screen: Screen) -> None:
249250
if self.is_attached and screen is self.screen:
250251
await self.recompose()
251252

253+
def _on_mouse_scroll_down(self, event: events.MouseScrollDown) -> None:
254+
if self.allow_horizontal_scroll:
255+
self._clear_anchor()
256+
if self._scroll_right_for_pointer(animate=False):
257+
event.stop()
258+
event.prevent_default()
259+
260+
def _on_mouse_scroll_up(self, event: events.MouseScrollUp) -> None:
261+
if self.allow_horizontal_scroll:
262+
self._clear_anchor()
263+
if self._scroll_left_for_pointer(animate=False):
264+
event.stop()
265+
event.prevent_default()
266+
252267
def on_mount(self) -> None:
253268
self.call_next(self.bindings_changed, self.screen)
254269
self.screen.bindings_updated_signal.subscribe(self, self.bindings_changed)

0 commit comments

Comments
 (0)