Stop all animators on poup/popdown invoking #1310
This commit is contained in:
parent
aed38758be
commit
ff2dd6cc0e
@ -193,11 +193,17 @@ class Palette(PaletteWindow):
|
|||||||
state = self.PRIMARY
|
state = self.PRIMARY
|
||||||
self.set_palette_state(state)
|
self.set_palette_state(state)
|
||||||
|
|
||||||
|
if state == self.PRIMARY:
|
||||||
self._secondary_anim.start()
|
self._secondary_anim.start()
|
||||||
|
else:
|
||||||
|
self._secondary_anim.stop()
|
||||||
|
|
||||||
def on_popdown(self):
|
def popdown(self, immediate=False):
|
||||||
|
if immediate:
|
||||||
# to suppress glitches while later re-opening
|
# to suppress glitches while later re-opening
|
||||||
self.set_palette_state(self.PRIMARY)
|
self.set_palette_state(self.PRIMARY)
|
||||||
|
PaletteWindow.popdown(self, immediate)
|
||||||
|
self._secondary_anim.stop()
|
||||||
|
|
||||||
def on_enter(self, event):
|
def on_enter(self, event):
|
||||||
PaletteWindow.on_enter(self, event)
|
PaletteWindow.on_enter(self, event)
|
||||||
|
@ -319,6 +319,7 @@ class PaletteWindow(gtk.Window):
|
|||||||
if not immediate:
|
if not immediate:
|
||||||
self._popup_anim.start()
|
self._popup_anim.start()
|
||||||
else:
|
else:
|
||||||
|
self._popup_anim.stop()
|
||||||
self.show()
|
self.show()
|
||||||
# we have to invoke update_position() twice
|
# we have to invoke update_position() twice
|
||||||
# since WM could ignore first move() request
|
# since WM could ignore first move() request
|
||||||
@ -326,20 +327,17 @@ class PaletteWindow(gtk.Window):
|
|||||||
|
|
||||||
def popdown(self, immediate=False):
|
def popdown(self, immediate=False):
|
||||||
logging.debug('PaletteWindow.popdown immediate %r', immediate)
|
logging.debug('PaletteWindow.popdown immediate %r', immediate)
|
||||||
self._popup_anim.stop()
|
|
||||||
|
|
||||||
|
self._popup_anim.stop()
|
||||||
self._mouse_detector.stop()
|
self._mouse_detector.stop()
|
||||||
|
|
||||||
if not immediate:
|
if not immediate:
|
||||||
self._popdown_anim.start()
|
self._popdown_anim.start()
|
||||||
else:
|
else:
|
||||||
self.on_popdown()
|
self._popdown_anim.stop()
|
||||||
self.size_request()
|
self.size_request()
|
||||||
self.hide()
|
self.hide()
|
||||||
|
|
||||||
def on_popdown(self):
|
|
||||||
self._popdown_anim.stop()
|
|
||||||
|
|
||||||
def on_invoker_enter(self):
|
def on_invoker_enter(self):
|
||||||
self._mouse_detector.start()
|
self._mouse_detector.start()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user