Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sugar/graphics/palette.py13
-rw-r--r--sugar/graphics/radiotoolbutton.py4
-rw-r--r--sugar/graphics/toggletoolbutton.py4
-rw-r--r--sugar/graphics/toolbutton.py4
4 files changed, 17 insertions, 8 deletions
diff --git a/sugar/graphics/palette.py b/sugar/graphics/palette.py
index bc2513c..de0d055 100644
--- a/sugar/graphics/palette.py
+++ b/sugar/graphics/palette.py
@@ -467,7 +467,6 @@ class Invoker(gobject.GObject):
self._screen_area = gtk.gdk.Rectangle(0, 0, gtk.gdk.screen_width(),
gtk.gdk.screen_height())
- self._alignments = self.BOTTOM + self.RIGHT + self.TOP + self.LEFT
self._position_hint = self.ANCHORED
self._cursor_x = -1
self._cursor_y = -1
@@ -516,7 +515,7 @@ class Invoker(gobject.GObject):
(-1.0, -1.0, 0.0, 0.0),
(-1.0, 0.0, 0.0, 1.0)]
else:
- return self._alignments
+ return self.BOTTOM + self.RIGHT + self.TOP + self.LEFT
def get_position_for_alignment(self, alignment, palette_dim):
rect = self._get_position_for_alignment(alignment, palette_dim)
@@ -648,6 +647,16 @@ class CanvasInvoker(Invoker):
def get_toplevel(self):
return hippo.get_canvas_for_item(self._item).get_toplevel()
+class ToolInvoker(WidgetInvoker):
+ def get_aligments(self):
+ if self.parent is None:
+ return WidgetInvoker.get_alignments()
+
+ if self.parent.get_orientation() is gtk.ORIENTATION_HORIZONTAL:
+ return self.BOTTOM + self.TOP
+ else:
+ return self.LEFT + self.RIGHT
+
class _PaletteObserver(gobject.GObject):
__gtype_name__ = 'SugarPaletteObserver'
diff --git a/sugar/graphics/radiotoolbutton.py b/sugar/graphics/radiotoolbutton.py
index a8269dd..80afb49 100644
--- a/sugar/graphics/radiotoolbutton.py
+++ b/sugar/graphics/radiotoolbutton.py
@@ -19,7 +19,7 @@
import gtk
from sugar.graphics.icon import Icon
-from sugar.graphics.palette import Palette, WidgetInvoker
+from sugar.graphics.palette import Palette, ToolInvoker
class RadioToolButton(gtk.RadioToolButton):
__gtype_name__ = "SugarRadioToolButton"
@@ -42,7 +42,7 @@ class RadioToolButton(gtk.RadioToolButton):
def set_palette(self, palette):
self._palette = palette
- self._palette.props.invoker = WidgetInvoker(self.child)
+ self._palette.props.invoker = ToolInvoker(self.child)
def set_tooltip(self, text):
self.set_palette(Palette(text))
diff --git a/sugar/graphics/toggletoolbutton.py b/sugar/graphics/toggletoolbutton.py
index 4fbfa66..5f44601 100644
--- a/sugar/graphics/toggletoolbutton.py
+++ b/sugar/graphics/toggletoolbutton.py
@@ -18,7 +18,7 @@
import gtk
from sugar.graphics.icon import Icon
-from sugar.graphics.palette import Palette, WidgetInvoker
+from sugar.graphics.palette import Palette, ToolInvoker
class ToggleToolButton(gtk.ToggleToolButton):
__gtype_name__ = "SugarToggleToolButton"
@@ -38,7 +38,7 @@ class ToggleToolButton(gtk.ToggleToolButton):
def set_palette(self, palette):
self._palette = palette
- self._palette.props.invoker = WidgetInvoker(self.child)
+ self._palette.props.invoker = ToolInvoker(self.child)
def set_tooltip(self, text):
self.set_palette(Palette(text))
diff --git a/sugar/graphics/toolbutton.py b/sugar/graphics/toolbutton.py
index 4db7d90..e06afe9 100644
--- a/sugar/graphics/toolbutton.py
+++ b/sugar/graphics/toolbutton.py
@@ -20,7 +20,7 @@ import gobject
import time
from sugar.graphics.icon import Icon
-from sugar.graphics.palette import Palette, WidgetInvoker
+from sugar.graphics.palette import Palette, ToolInvoker
class ToolButton(gtk.ToolButton):
__gtype_name__ = "SugarToolButton"
@@ -42,7 +42,7 @@ class ToolButton(gtk.ToolButton):
def set_palette(self, palette):
self._palette = palette
- self._palette.props.invoker = WidgetInvoker(self.child)
+ self._palette.props.invoker = ToolInvoker(self.child)
def set_tooltip(self, text):
self.set_palette(Palette(text))