Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAgustin Zubiaga <aguz@sugarlabs.org>2012-10-17 00:35:02 (GMT)
committer Agustin Zubiaga <aguz@sugarlabs.org>2012-10-17 00:35:02 (GMT)
commit163e6b5e8110e5106fa57dc9d1f4a825c1851e3a (patch)
tree5d4ffbb71534b470afd3751095b435c1f12684af
parent10bccb434a41a50299d595a97253af05502c703f (diff)
Remove image vibration in zoom in (touch)
Signed-off-by: Agustin Zubiaga <aguz@sugarlabs.org>
-rw-r--r--ImageViewerActivity.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/ImageViewerActivity.py b/ImageViewerActivity.py
index f17d4cf..f0b7570 100644
--- a/ImageViewerActivity.py
+++ b/ImageViewerActivity.py
@@ -116,6 +116,7 @@ class ImageViewerActivity(activity.Activity):
self._zoom_in_button = None
self._fileserver = None
self._fileserver_tube_id = None
+ self._scroll_pos = (0, 0)
self.view = ImageView.ImageViewer()
@@ -134,7 +135,9 @@ class ImageViewerActivity(activity.Activity):
toolbar_box.show()
vadj = Gtk.Adjustment()
+ vadj.connect('value-changed', self._scrolledwindow_moved)
hadj = Gtk.Adjustment()
+ hadj.connect('value-changed', self._scrolledwindow_moved)
self.sw = Gtk.ScrolledWindow(hadj, vadj)
self.view.parent = self.sw
# Avoid needless spacing
@@ -208,6 +211,17 @@ class ImageViewerActivity(activity.Activity):
# Wait for a successful join before trying to get the document
self.connect("joined", self._joined_cb)
+ def _scrolledwindow_moved(self, adjustment):
+ hadj = self.sw.get_hadjustment()
+ vadj = self.sw.get_vadjustment()
+
+ if not self._is_touching:
+ self._scroll_pos = (hadj.get_value(), vadj.get_value())
+ else:
+ h, v = self._scroll_pos
+ hadj.set_value(h)
+ vadj.set_value(v)
+
def __scale_changed_cb(self, controller, scale):
if scale != self._last_scale:
self._last_scale = scale
@@ -215,6 +229,7 @@ class ImageViewerActivity(activity.Activity):
self.view._is_touching = True
self.view.set_zoom_relative(scale)
+ self.view._is_touching = False
def handle_view_source(self):
raise NotImplementedError