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 17:45:54 (GMT)
committer Gonzalo Odiard <godiard@sugarlabs.org>2011-05-31 13:12:55 (GMT)
commit0ade8026a10108e0d4c2e945f3743945814a9dff (patch)
treedb3fa667bb0b40f2f4b0dff2392570b01e145b71
parenta0cdef436aa2296a631d50b2c483be8cf90c62d3 (diff)
Fix #10806 - No scrolling in Read (text backend)
This patch implements step scroll in the text backend.
-rw-r--r--textadapter.py28
1 files changed, 17 insertions, 11 deletions
diff --git a/textadapter.py b/textadapter.py
index a6cef2b..d2246b6 100644
--- a/textadapter.py
+++ b/textadapter.py
@@ -216,25 +216,31 @@ class TextViewer(gobject.GObject):
self._show_page(self._current_page)
self.emit('page-changed', old_page, self._current_page)
- def scroll(self, direction, horizontal):
+ def scroll(self, scrolltype, horizontal):
v_adjustment = self._scrolled.get_vadjustment()
- if direction == gtk.SCROLL_PAGE_BACKWARD:
- if v_adjustment.value == v_adjustment.lower:
+ v_value = v_adjustment.value
+ if scrolltype in (gtk.SCROLL_PAGE_BACKWARD, gtk.SCROLL_PAGE_FORWARD):
+ step = v_adjustment.page_increment
+ else:
+ step = v_adjustment.step_increment
+
+ if scrolltype in (gtk.SCROLL_PAGE_BACKWARD, gtk.SCROLL_STEP_BACKWARD):
+ if v_value <= v_adjustment.lower:
self.previous_page()
+ v_adjustment.value = v_adjustment.upper - \
+ v_adjustment.page_size
return
- if v_adjustment.value > v_adjustment.lower:
- new_value = v_adjustment.value - v_adjustment.step_increment
+ if v_value > v_adjustment.lower:
+ new_value = v_value - step
if new_value < v_adjustment.lower:
new_value = v_adjustment.lower
v_adjustment.value = new_value
- else:
- if v_adjustment.value == \
- v_adjustment.upper - v_adjustment.page_size:
+ elif scrolltype in (gtk.SCROLL_PAGE_FORWARD, gtk.SCROLL_STEP_FORWARD):
+ if v_value >= v_adjustment.upper - v_adjustment.page_size:
self.next_page()
return
- if v_adjustment.value < \
- v_adjustment.upper - v_adjustment.page_size:
- new_value = v_adjustment.value + v_adjustment.step_increment
+ if v_value < v_adjustment.upper - v_adjustment.page_size:
+ new_value = v_value + step
if new_value > v_adjustment.upper - v_adjustment.page_size:
new_value = v_adjustment.upper - v_adjustment.page_size
v_adjustment.value = new_value