Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/graphics/palette.py
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2007-08-24 12:21:07 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2007-08-24 12:21:07 (GMT)
commit466bc7b3004a6a7a8488a1257e44ceff3c56d6b8 (patch)
tree4c8e1f223a683e98551f48addc6179806e06979b /sugar/graphics/palette.py
parentd195fccbde70966ea7868e7c9c5983e85824db2b (diff)
Remember state when scrubbing
Diffstat (limited to 'sugar/graphics/palette.py')
-rw-r--r--sugar/graphics/palette.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/sugar/graphics/palette.py b/sugar/graphics/palette.py
index 15cd661..d87b0f6 100644
--- a/sugar/graphics/palette.py
+++ b/sugar/graphics/palette.py
@@ -78,8 +78,8 @@ class Palette(gtk.Window):
RIGHT = 5
TOP = 6
- _PRIMARY = 0
- _SECONDARY = 1
+ PRIMARY = 0
+ SECONDARY = 1
__gtype_name__ = 'SugarPalette'
@@ -104,11 +104,12 @@ class Palette(gtk.Window):
self.set_resizable(False)
self.connect('realize', self._realize_cb)
+ self.palette_state = self.PRIMARY
+
self._old_alloc = None
self._full_request = [0, 0]
self._cursor_x = 0
self._cursor_y = 0
- self._state = self._PRIMARY
self._invoker = None
self._group_id = None
self._up = False
@@ -348,11 +349,11 @@ class Palette(gtk.Window):
return x, y
def _update_full_request(self):
- state = self._state
+ state = self.palette_state
self.set_size_request(-1, -1)
- self._set_state(self._SECONDARY)
+ self._set_state(self.SECONDARY)
self._full_request = self.size_request()
self.set_size_request(self._full_request[0], -1)
@@ -448,23 +449,25 @@ class Palette(gtk.Window):
self._hide()
def _set_state(self, state):
- if self._state == state:
+ if self.palette_state == state:
return
- if state == self._PRIMARY:
+ if state == self.PRIMARY:
self.menu.unembed()
self._secondary_box.hide()
- elif state == self._SECONDARY:
+ elif state == self.SECONDARY:
self.menu.embed(self._menu_box)
self._secondary_box.show()
- self._state = state
+ self.palette_state = state
def _invoker_mouse_enter_cb(self, invoker):
immediate = False
if self._group_id:
group = palettegroup.get_group(self._group_id)
if group and group.is_up():
+ self._set_state(group.get_state())
+
immediate = True
group.popdown()
@@ -529,7 +532,7 @@ class _PopupAnimation(animator.Animation):
def next_frame(self, current):
if current == 1.0:
- self._palette._set_state(Palette._PRIMARY)
+ self._palette._set_state(Palette.PRIMARY)
self._palette._show()
class _SecondaryAnimation(animator.Animation):
@@ -539,7 +542,7 @@ class _SecondaryAnimation(animator.Animation):
def next_frame(self, current):
if current == 1.0:
- self._palette._set_state(Palette._SECONDARY)
+ self._palette._set_state(Palette.SECONDARY)
self._palette._update_position()
class _PopdownAnimation(animator.Animation):