Stop all animators on poup/popdown invoking #1310

This commit is contained in:
Aleksey Lim 2009-09-09 12:41:37 +00:00
parent aed38758be
commit ff2dd6cc0e
2 changed files with 13 additions and 9 deletions

View File

@ -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)

View File

@ -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()