diff options
author | pavel <pavel989@gmail.com> | 2018-10-07 12:20:43 -0400 |
---|---|---|
committer | pavel <pavel989@gmail.com> | 2018-10-07 12:20:43 -0400 |
commit | 41e19fd36aff34f3743d47345c5d83c247964fb3 (patch) | |
tree | 45002af0d04de623e5a0935b842b89326c230005 | |
parent | 9454e9ff072007a2b2ed99bd11863b2cb8397785 (diff) | |
download | ranger-41e19fd36aff34f3743d47345c5d83c247964fb3.tar.gz |
initial mouse wheel scroll support
-rw-r--r-- | ranger/gui/widgets/browsercolumn.py | 9 | ||||
-rw-r--r-- | ranger/gui/widgets/pager.py | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/ranger/gui/widgets/browsercolumn.py b/ranger/gui/widgets/browsercolumn.py index bc6f7b1b..d5741d09 100644 --- a/ranger/gui/widgets/browsercolumn.py +++ b/ranger/gui/widgets/browsercolumn.py @@ -95,7 +95,13 @@ class BrowserColumn(Pager): # pylint: disable=too-many-instance-attributes elif self.level == 0: self.fm.thisdir.move_to_obj(clicked_file) self.fm.execute_file(clicked_file) - + elif self.target.is_file: ##scrolling through file preview? + if len(self.lines) > self.hei: ##is it longer than we can show? + if self.scrollbit > -1: ## have we reached the the top? + self.scrollbit += direction # influence the start point + if self.scrollbit < 0: #make sure we dont scroll before the file + self.scrollbit = 0 + self.need_redraw = True else: if self.level > 0 and not direction: self.fm.move(right=0) @@ -155,6 +161,7 @@ class BrowserColumn(Pager): # pylint: disable=too-many-instance-attributes if target != self.old_dir: self.need_redraw = True self.old_dir = target + self.scrollbit = 0 # reset scroll start if target: target.use() diff --git a/ranger/gui/widgets/pager.py b/ranger/gui/widgets/pager.py index d64d4ac1..f4555cf9 100644 --- a/ranger/gui/widgets/pager.py +++ b/ranger/gui/widgets/pager.py @@ -29,6 +29,7 @@ class Pager(Widget): # pylint: disable=too-many-instance-attributes need_clear_image = False need_redraw_image = False max_width = None + scrollbit = 0 def __init__(self, win, embedded=False): Widget.__init__(self, win) @@ -39,6 +40,7 @@ class Pager(Widget): # pylint: disable=too-many-instance-attributes self.lines = [] self.image = None self.image_drawn = False + self.scrollbit = 0 def _close_source(self): if self.source and self.source_is_stream: @@ -95,7 +97,7 @@ class Pager(Widget): # pylint: disable=too-many-instance-attributes if not self.image: line_gen = self._generate_lines( - starty=self.scroll_begin, startx=self.startx) + starty=self.scrollbit, startx=self.startx) #updated for new scroll var for line, i in zip(line_gen, range(self.hei)): self._draw_line(i, line) |