Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@marcopg.org>2008-12-18 20:00:19 (GMT)
committer Marco Pesenti Gritti <marco@marcopg.org>2008-12-18 20:00:19 (GMT)
commit5b57e1a6cd1ea327ac79667b4a3c06e6985f1d33 (patch)
tree604300bf4c1acfb349ab11b914fe43ea2d17296e /src/sugar
parent335d9d7adb244f0ac3fdf522d9a7a7d166c874ad (diff)
Rework palette state logic. Fix #42
Diffstat (limited to 'src/sugar')
-rw-r--r--src/sugar/graphics/palette.py16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/sugar/graphics/palette.py b/src/sugar/graphics/palette.py
index e4f6ab5..3623dce 100644
--- a/src/sugar/graphics/palette.py
+++ b/src/sugar/graphics/palette.py
@@ -546,8 +546,13 @@ class Palette(gtk.Window):
self.move(position.x, position.y)
- def popup(self, immediate=False):
+ def popup(self, immediate=False, state=None):
logging.debug('Palette.popup immediate %r' % immediate)
+
+ if state is None:
+ state = self.PRIMARY
+ self.set_state(state)
+
if self._invoker is not None:
self._update_full_request()
self._alignment = self._invoker.get_alignment(self._full_request)
@@ -602,8 +607,6 @@ class Palette(gtk.Window):
if self._group_id:
group = palettegroup.get_group(self._group_id)
if group and group.is_up():
- self.set_state(self.PRIMARY)
-
immediate = True
group.popdown()
@@ -620,11 +623,7 @@ class Palette(gtk.Window):
self.popdown()
def _invoker_right_click_cb(self, invoker):
- self._popup_anim.stop()
- self._secondary_anim.stop()
- self._popdown_anim.stop()
- self.set_state(self.SECONDARY)
- self.show()
+ self.popup(immediate=True, state=self.SECONDARY)
def __enter_notify_event_cb(self, widget, event):
if event.detail != gtk.gdk.NOTIFY_INFERIOR and \
@@ -713,7 +712,6 @@ class _PopupAnimation(animator.Animation):
def next_frame(self, current):
if current == 1.0:
- self._palette.set_state(Palette.PRIMARY)
self._palette.show()
class _SecondaryAnimation(animator.Animation):