Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2007-08-20 18:01:27 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2007-08-20 18:01:27 (GMT)
commit3b8f25b7b9949b2bb2857d8ad9d5987cd278bd97 (patch)
tree1cb776a27c083983ea4577f04189db7bc5aed9e2 /sugar
parent1c06a44a7d55c40e682592a517e320b3c514a229 (diff)
Implement "scrubbing" of palettes based on groups.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/graphics/palette.py24
-rw-r--r--sugar/graphics/palettegroup.py5
2 files changed, 24 insertions, 5 deletions
diff --git a/sugar/graphics/palette.py b/sugar/graphics/palette.py
index 9b27163..1d90391 100644
--- a/sugar/graphics/palette.py
+++ b/sugar/graphics/palette.py
@@ -194,6 +194,7 @@ class Palette(gtk.Window):
group = palettegroup.get_group(self._group_id)
group.remove(self)
if group_id:
+ self._group_id = group_id
group = palettegroup.get_group(group_id)
group.add(self)
@@ -412,16 +413,21 @@ class Palette(gtk.Window):
self._up = False
self.emit('popdown')
- def popup(self):
+ def popup(self, immediate=False):
self._popdown_anim.stop()
- self._popup_anim.start()
+
+ if not immediate:
+ self._popup_anim.start()
+ else:
+ self._show()
+
self._secondary_anim.start()
- def popdown(self, inmediate=False):
+ def popdown(self, immediate=False):
self._secondary_anim.stop()
self._popup_anim.stop()
- if not inmediate:
+ if not immediate:
self._popdown_anim.start()
else:
self._hide()
@@ -440,7 +446,15 @@ class Palette(gtk.Window):
self._state = state
def _invoker_mouse_enter_cb(self, invoker):
- self.popup()
+ immediate = False
+ if self._group_id:
+ group = palettegroup.get_group(self._group_id)
+ if group and group.is_up():
+ immediate = True
+ group.popdown()
+
+ print immediate
+ self.popup(immediate=immediate)
def _invoker_mouse_leave_cb(self, invoker):
self.popdown()
diff --git a/sugar/graphics/palettegroup.py b/sugar/graphics/palettegroup.py
index d5e1125..f120c40 100644
--- a/sugar/graphics/palettegroup.py
+++ b/sugar/graphics/palettegroup.py
@@ -58,6 +58,11 @@ class Group(gobject.GObject):
self._palettes.remove(palette)
+ def popdown(self):
+ for palette in self._palettes:
+ if palette.is_up():
+ palette.popdown(immediate=True)
+
def _palette_popup_cb(self, palette):
if not self._up:
self.emit('popup')