Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-09-09 12:41:37 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-09-09 16:38:52 (GMT)
commitff2dd6cc0e55aeceaf63cde10f58db3cec18493d (patch)
tree6a90df629b3a03d9dfec56a988a39f53baa56fb3
parentaed38758bea768a0f98302777b9e081671510282 (diff)
Stop all animators on poup/popdown invoking #1310
-rw-r--r--src/sugar/graphics/palette.py14
-rw-r--r--src/sugar/graphics/palettewindow.py8
2 files changed, 13 insertions, 9 deletions
diff --git a/src/sugar/graphics/palette.py b/src/sugar/graphics/palette.py
index 2ea2376..f4b18c0 100644
--- a/src/sugar/graphics/palette.py
+++ b/src/sugar/graphics/palette.py
@@ -193,11 +193,17 @@ class Palette(PaletteWindow):
state = self.PRIMARY
self.set_palette_state(state)
- self._secondary_anim.start()
+ if state == self.PRIMARY:
+ self._secondary_anim.start()
+ else:
+ self._secondary_anim.stop()
- def on_popdown(self):
- # to suppress glitches while later re-opening
- self.set_palette_state(self.PRIMARY)
+ def popdown(self, immediate=False):
+ if immediate:
+ # to suppress glitches while later re-opening
+ self.set_palette_state(self.PRIMARY)
+ PaletteWindow.popdown(self, immediate)
+ self._secondary_anim.stop()
def on_enter(self, event):
PaletteWindow.on_enter(self, event)
diff --git a/src/sugar/graphics/palettewindow.py b/src/sugar/graphics/palettewindow.py
index 73c6ae7..d08052f 100644
--- a/src/sugar/graphics/palettewindow.py
+++ b/src/sugar/graphics/palettewindow.py
@@ -319,6 +319,7 @@ class PaletteWindow(gtk.Window):
if not immediate:
self._popup_anim.start()
else:
+ self._popup_anim.stop()
self.show()
# we have to invoke update_position() twice
# since WM could ignore first move() request
@@ -326,20 +327,17 @@ class PaletteWindow(gtk.Window):
def popdown(self, immediate=False):
logging.debug('PaletteWindow.popdown immediate %r', immediate)
- self._popup_anim.stop()
+ self._popup_anim.stop()
self._mouse_detector.stop()
if not immediate:
self._popdown_anim.start()
else:
- self.on_popdown()
+ self._popdown_anim.stop()
self.size_request()
self.hide()
- def on_popdown(self):
- self._popdown_anim.stop()
-
def on_invoker_enter(self):
self._mouse_detector.start()