feat: apply scrollable mixin to pages

This commit is contained in:
aclist committed 2026-01-01 23:49:16 +09:00
1 parent aba00f732a
commit 5f0c8f7654
11 files changed
+115 -88

No files matched your search

+14 -3
View File
@@ -3,11 +3,22 @@ from dzgui.const.constants import SCROLL_INCREMENT
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gdk # noqa
from gi.repository import Gtk, Gdk # noqa
class ScrollableMixin:
def _set_adjustment(self, adjustment = VAdjustment) -> None:
vadj = self.scrollable.get_vadjustment()
def _on_keypress(self, widget: Gtk.Widget, event: Gdk.EventKey) -> None:
match event.keyval:
case Gdk.KEY_k | Gdk.KEY_Up:
self._set_adjustment(VAdjustment.UP)
case Gdk.KEY_Down | Gdk.KEY_j:
self._set_adjustment(VAdjustment.DOWN)
case Gdk.KEY_g:
self._set_adjustment(VAdjustment.TOP)
case Gdk.KEY_G:
self._set_adjustment(VAdjustment.BOTTOM)
def _set_adjustment(self, adjustment: VAdjustment) -> None:
vadj = self.get_vadjustment()
match adjustment:
case VAdjustment.TOP:
adj = vadj.get_lower()