diff options
author | Aleksey 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) |
commit | ff2dd6cc0e55aeceaf63cde10f58db3cec18493d (patch) | |
tree | 6a90df629b3a03d9dfec56a988a39f53baa56fb3 | |
parent | aed38758bea768a0f98302777b9e081671510282 (diff) |
Stop all animators on poup/popdown invoking #1310
-rw-r--r-- | src/sugar/graphics/palette.py | 14 | ||||
-rw-r--r-- | src/sugar/graphics/palettewindow.py | 8 |
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() |