diff options
author | Gonzalo Odiard <godiard@sugarlabs.org> | 2011-05-30 16:28:17 (GMT) |
---|---|---|
committer | Gonzalo Odiard <godiard@sugarlabs.org> | 2011-05-31 13:12:49 (GMT) |
commit | a0cdef436aa2296a631d50b2c483be8cf90c62d3 (patch) | |
tree | 8460197d8b06645073c46dcb8fe46690fbee476e /evinceadapter.py | |
parent | 1ee3977e1c54a791050e69b2622b42e02cda8698 (diff) |
Fix #10806 - No scrolling in Read
Read had implemented scrolling by page (with page up/down keys),
this patch implement scroll by steps with the keys up/down
in pdf and epub backends.
Diffstat (limited to 'evinceadapter.py')
-rw-r--r-- | evinceadapter.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/evinceadapter.py b/evinceadapter.py index 64b5cb7..3d3350c 100644 --- a/evinceadapter.py +++ b/evinceadapter.py @@ -14,7 +14,7 @@ class EvinceViewer(): self._view = evince.View() def setup(self, activity): - + self._activity = activity self._view.connect('selection-changed', activity._view_selection_changed_cb) @@ -222,14 +222,30 @@ class EvinceViewer(): Scrolls through the pages. Scrolling is horizontal if horizontal is set to True Valid scrolltypes are: - gtk.SCROLL_PAGE_BACKWARD and gtk.SCROLL_PAGE_FORWARD + gtk.SCROLL_PAGE_BACKWARD, gtk.SCROLL_PAGE_FORWARD, + gtk.SCROLL_STEP_BACKWARD and gtk.SCROLL_STEP_FORWARD ''' + _logger.error('scroll: %s', scrolltype) + if scrolltype == gtk.SCROLL_PAGE_BACKWARD: self._view.scroll(gtk.SCROLL_PAGE_BACKWARD, -1) elif scrolltype == gtk.SCROLL_PAGE_FORWARD: self._view.scroll(gtk.SCROLL_PAGE_FORWARD, 1) + elif scrolltype == gtk.SCROLL_STEP_BACKWARD: + self._scroll_step(False) + elif scrolltype == gtk.SCROLL_STEP_FORWARD: + self._scroll_step(True) else: print ('Got unsupported scrolltype %s' % str(scrolltype)) + def _scroll_step(self, forward): + v_adj = self._activity._scrolled.get_vadjustment() + v_value = v_adj.get_value() + step = v_adj.get_step_increment() + if forward: + v_adj.set_value(v_value + step) + else: + v_adj.set_value(v_value - step) + def copy(self): self._view.copy() |