Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/journal/homogenetable.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/jarabe/journal/homogenetable.py')
-rw-r--r--src/jarabe/journal/homogenetable.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/jarabe/journal/homogenetable.py b/src/jarabe/journal/homogenetable.py
index 334dbb8..dea19fa 100644
--- a/src/jarabe/journal/homogenetable.py
+++ b/src/jarabe/journal/homogenetable.py
@@ -206,8 +206,23 @@ class HomogeneTable(SugarBin):
begin, end = self._frame_range
return xrange(begin, end + 1)
+ def set_frame_range(self, new):
+ if not new:
+ return
+ old = self.frame_range
+ if new[0] in old and new[-1] in old:
+ pass
+ elif len(new) <= len(old):
+ self.scroll_to_cell(new[-1])
+ self.scroll_to_cell(new[0])
+ elif not old or old[0] < new[0]:
+ self.scroll_to_cell(new[0] + len(old) - 1)
+ elif old[-1] > new[-1]:
+ self.scroll_to_cell(new[-1] - len(old) + 1)
+
"""Range of visible cells"""
- frame_range = gobject.property(getter=get_frame_range)
+ frame_range = gobject.property(
+ getter=get_frame_range, setter=set_frame_range)
@property
def frame_cells(self):