Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@sugarlabs.org>2011-05-30 16:28:17 (GMT)
committer Gonzalo Odiard <godiard@sugarlabs.org>2011-05-31 13:12:49 (GMT)
commita0cdef436aa2296a631d50b2c483be8cf90c62d3 (patch)
tree8460197d8b06645073c46dcb8fe46690fbee476e
parent1ee3977e1c54a791050e69b2622b42e02cda8698 (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.
-rw-r--r--epubview/epubview.py14
-rw-r--r--evinceadapter.py20
2 files changed, 30 insertions, 4 deletions
diff --git a/epubview/epubview.py b/epubview/epubview.py
index 5dccad0..b9f157c 100644
--- a/epubview/epubview.py
+++ b/epubview/epubview.py
@@ -27,7 +27,6 @@ import BeautifulSoup
from epub import _Epub
from jobs import _JobPaginator as _Paginator
-
LOADING_HTML = '''
<div style="width:100%;height:100%;text-align:center;padding-top:50%;">
<h1>Loading...</h1>
@@ -249,7 +248,8 @@ class _View(gtk.HBox):
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
'''
if scrolltype == gtk.SCROLL_PAGE_BACKWARD:
self.__going_back = True
@@ -261,6 +261,16 @@ class _View(gtk.HBox):
self.__going_fwd = True
if not self._do_page_transition():
self._view.move_cursor(gtk.MOVEMENT_PAGES, 1)
+ elif scrolltype == gtk.SCROLL_STEP_BACKWARD:
+ self.__going_fwd = False
+ self.__going_back = True
+ if not self._do_page_transition():
+ self._view.move_cursor(gtk.MOVEMENT_DISPLAY_LINES, -1)
+ elif scrolltype == gtk.SCROLL_STEP_FORWARD:
+ self.__going_fwd = True
+ self.__going_back = False
+ if not self._do_page_transition():
+ self._view.move_cursor(gtk.MOVEMENT_DISPLAY_LINES, 1)
else:
print ('Got unsupported scrolltype %s' % str(scrolltype))
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()