Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Berg <benjamin@sipsolutions.net>2011-11-13 14:31:02 (GMT)
committer Benjamin Berg <benjamin@sipsolutions.net>2011-11-13 14:31:02 (GMT)
commita6bb6b524c34b117f18690978962f647babe8c1d (patch)
tree26c7ae10d09e7483d4350cc0a5a4ee262eea6413
parentaee30abe14fb4c5e46fe75abeca061a1089a9efb (diff)
Basic fixes for the toolbar box. It is kinda usable again now.
-rw-r--r--src/sugar3/graphics/toolbarbox.py30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/sugar3/graphics/toolbarbox.py b/src/sugar3/graphics/toolbarbox.py
index 28e59a4..7032c86 100644
--- a/src/sugar3/graphics/toolbarbox.py
+++ b/src/sugar3/graphics/toolbarbox.py
@@ -18,7 +18,7 @@
from gi.repository import Gtk, GObject, Gdk
from sugar3.graphics import style
-from sugar3.graphics.palettewindow import PaletteWindow, ToolInvoker
+from sugar3.graphics.palettewindow import PaletteWindow, ToolInvoker, _PaletteWindowWidget
from sugar3.graphics.toolbutton import ToolButton
from sugar3.graphics import palettegroup
@@ -47,8 +47,11 @@ class ToolbarButton(ToolButton):
def get_toolbar_box(self):
parent = self.get_parent()
- if not hasattr(parent, 'owner'):
+
+ if hasattr(parent, 'owner'):
return parent.owner
+ else:
+ return None
toolbar_box = property(get_toolbar_box)
@@ -73,7 +76,7 @@ class ToolbarButton(ToolButton):
def is_in_palette(self):
return self.page is not None and \
- self.page_widget.get_parent() == self.props.palette
+ self.page_widget.get_parent() == self.props.palette._widget
def is_expanded(self):
return self.page is not None and \
@@ -96,9 +99,7 @@ class ToolbarButton(ToolButton):
box = self.toolbar_box
if box.expanded_button is not None:
- if box.expanded_button.window is not None:
- # need to redraw it to erase arrow
- box.expanded_button.window.invalidate_rect(None, True)
+ box.expanded_button.queue_draw()
box.expanded_button.set_expanded(False)
box.expanded_button = self
@@ -114,9 +115,8 @@ class ToolbarButton(ToolButton):
self._unparent()
- # FIXME needs update due to refactoring
- #if isinstance(self.props.palette, _ToolbarPalette):
- # self.props.palette._widget.add(self.page_widget)
+ if isinstance(self.props.palette, _ToolbarPalette):
+ self.props.palette._widget.add(self.page_widget)
def _unparent(self):
parent = self.page_widget.get_parent()
@@ -221,6 +221,11 @@ class _ToolbarPalette(PaletteWindow):
group.connect('popdown', self.__group_popdown_cb)
self.set_group_id('toolbarbox')
+ self._widget = _PaletteWindowWidget()
+ self._setup_widget()
+
+ self._widget.connect('realize', self._realize_cb)
+
def get_expanded_button(self):
return self.invoker.parent
@@ -249,9 +254,10 @@ class _ToolbarPalette(PaletteWindow):
if not group.is_up():
self.popdown()
- def do_get_preferred_width(self):
- width = Gdk.Screen.width()
- return width, width
+ def _realize_cb(self, widget):
+ screen = self._widget.get_screen()
+ width = screen.width()
+ self._widget.set_size_request(width, -1)
def popup(self, immediate=False):
button = self.expanded_button