diff options
author | Benjamin Berg <benjamin@sipsolutions.net> | 2011-11-13 14:31:02 (GMT) |
---|---|---|
committer | Benjamin Berg <benjamin@sipsolutions.net> | 2011-11-13 14:31:02 (GMT) |
commit | a6bb6b524c34b117f18690978962f647babe8c1d (patch) | |
tree | 26c7ae10d09e7483d4350cc0a5a4ee262eea6413 | |
parent | aee30abe14fb4c5e46fe75abeca061a1089a9efb (diff) |
Basic fixes for the toolbar box. It is kinda usable again now.
-rw-r--r-- | src/sugar3/graphics/toolbarbox.py | 30 |
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 |