Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2007-03-12 15:57:52 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2007-03-12 15:57:52 (GMT)
commitce91f2df995fa07b7dd6a2f5777e7785e2c08d48 (patch)
treebc41aeec66efd4b8fb6c07e84e96667a1673ac4d /sugar
parent978965bfa8e042b9daa2b0d4a5bc28a758a355a6 (diff)
Force hiding when running an activity even if the user hover the frame again.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/graphics/animator.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/sugar/graphics/animator.py b/sugar/graphics/animator.py
index def823c..cf6ef27 100644
--- a/sugar/graphics/animator.py
+++ b/sugar/graphics/animator.py
@@ -21,8 +21,14 @@ import gobject
EASE_OUT_EXPO = 1
-class Animator(object):
+class Animator(gobject.GObject):
+ __gsignals__ = {
+ 'completed': (gobject.SIGNAL_RUN_FIRST,
+ gobject.TYPE_NONE, ([])),
+ }
+
def __init__(self, time, fps, easing=EASE_OUT_EXPO):
+ gobject.GObject.__init__(self)
self._animations = []
self._time = time
self._interval = 1.0 / fps
@@ -44,13 +50,18 @@ class Animator(object):
if self._timeout_sid:
gobject.source_remove(self._timeout_sid)
self._timeout_sid = 0
+ self.emit('completed')
def _next_frame_cb(self):
current_time = min (self._time, time.time() - self._start_time)
for animation in self._animations:
animation.do_frame(current_time, self._time, self._easing)
- return (current_time != self._time)
+ if current_time == self._time:
+ self.stop()
+ return False
+ else:
+ return True
class Animation(object):
def __init__(self, start, end):