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-15 19:18:58 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2007-08-15 19:18:58 (GMT)
commit4f1986e8a4e3ce567595404a9d425a58f16f4f1c (patch)
treee28af7fda24e19473fd2979646ceedfca8424b83 /sugar
parent43fb1627a7ce9a5e05230699cda7448c44f5c689 (diff)
Let the invoker deal with popup/popdown redraw.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/graphics/palette.py19
-rw-r--r--sugar/graphics/radiotoolbutton.py7
-rw-r--r--sugar/graphics/toggletoolbutton.py7
-rw-r--r--sugar/graphics/toolbutton.py7
4 files changed, 19 insertions, 21 deletions
diff --git a/sugar/graphics/palette.py b/sugar/graphics/palette.py
index 368a0f6..2d6b35b 100644
--- a/sugar/graphics/palette.py
+++ b/sugar/graphics/palette.py
@@ -398,6 +398,9 @@ class Palette(gtk.Window):
self.menu.set_active(True)
self.show()
+ if self._invoker:
+ self._invoker.notify_popup()
+
self._up = True
_palette_observer.emit('popup', self)
self.emit('popup')
@@ -406,9 +409,13 @@ class Palette(gtk.Window):
if not self._palette_popup_sid is None:
_palette_observer.disconnect(self._palette_popup_sid)
self._palette_popup_sid = None
+
self.menu.set_active(False)
self.hide()
+ if self._invoker:
+ self._invoker.notify_popdown()
+
self._up = False
self.emit('popdown')
@@ -543,6 +550,12 @@ class Invoker(gobject.GObject):
height = gtk.gdk.screen_height()
return gtk.gdk.Rectangle(0, 0, width, height)
+ def notify_popup(self):
+ pass
+
+ def notify_popdown(self):
+ pass
+
class WidgetInvoker(Invoker):
def __init__(self, widget):
Invoker.__init__(self)
@@ -602,6 +615,12 @@ class WidgetInvoker(Invoker):
def get_toplevel(self):
return self._widget.get_toplevel()
+ def notify_popup(self):
+ self._widget.queue_draw()
+
+ def notify_popdown(self):
+ self._widget.queue_draw()
+
class CanvasInvoker(Invoker):
def __init__(self, item):
Invoker.__init__(self)
diff --git a/sugar/graphics/radiotoolbutton.py b/sugar/graphics/radiotoolbutton.py
index fb584ee..67bb398 100644
--- a/sugar/graphics/radiotoolbutton.py
+++ b/sugar/graphics/radiotoolbutton.py
@@ -41,9 +41,6 @@ class RadioToolButton(gtk.RadioToolButton):
self._palette = palette
self._palette.props.invoker = WidgetInvoker(self.child)
self._palette.props.draw_gap = True
-
- self._palette.connect("popup", self._palette_changed)
- self._palette.connect("popdown", self._palette_changed)
def set_tooltip(self, text):
self._palette = Palette(text)
@@ -57,8 +54,4 @@ class RadioToolButton(gtk.RadioToolButton):
gtk.RadioToolButton.do_expose_event(self, event)
- def _palette_changed(self, palette):
- # Force a redraw to update the invoker rectangle
- self.queue_draw()
-
palette = property(get_palette, set_palette)
diff --git a/sugar/graphics/toggletoolbutton.py b/sugar/graphics/toggletoolbutton.py
index 41050e2..196741a 100644
--- a/sugar/graphics/toggletoolbutton.py
+++ b/sugar/graphics/toggletoolbutton.py
@@ -40,9 +40,6 @@ class ToggleToolButton(gtk.ToggleToolButton):
self._palette = palette
self._palette.props.invoker = WidgetInvoker(self.child)
self._palette.props.draw_gap = True
-
- self._palette.connect("popup", self._palette_changed)
- self._palette.connect("popdown", self._palette_changed)
def set_tooltip(self, text):
self._palette = Palette(text)
@@ -56,8 +53,4 @@ class ToggleToolButton(gtk.ToggleToolButton):
gtk.ToggleToolButton.do_expose_event(self, event)
- def _palette_changed(self, palette):
- # Force a redraw to update the invoker rectangle
- self.queue_draw()
-
palette = property(get_palette, set_palette)
diff --git a/sugar/graphics/toolbutton.py b/sugar/graphics/toolbutton.py
index 52a5d62..11c803e 100644
--- a/sugar/graphics/toolbutton.py
+++ b/sugar/graphics/toolbutton.py
@@ -43,9 +43,6 @@ class ToolButton(gtk.ToolButton):
self._palette = palette
self._palette.props.invoker = WidgetInvoker(self.child)
self._palette.props.draw_gap = True
-
- self._palette.connect("popup", self._palette_changed)
- self._palette.connect("popdown", self._palette_changed)
def set_tooltip(self, text):
self.set_palette(Palette(text))
@@ -62,8 +59,4 @@ class ToolButton(gtk.ToolButton):
if self._palette:
self._palette.popdown(True)
- def _palette_changed(self, palette):
- # Force a redraw to update the invoker rectangle
- self.queue_draw()
-
palette = property(get_palette, set_palette)