diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2007-02-24 19:58:51 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2007-02-24 19:58:51 (GMT) |
commit | cb6a808832c456840c043f4b06ea55e7b64f2618 (patch) | |
tree | 697913162cd25380ed970012a974832820667120 /sugar | |
parent | 39292db23e4b9ba881e9d6e5b5a7924c76e2ddd6 (diff) | |
parent | d7eb3fd73400bef047ba49bf50d8673aa121dab0 (diff) |
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
Diffstat (limited to 'sugar')
-rw-r--r-- | sugar/graphics/canvasicon.py | 2 | ||||
-rw-r--r-- | sugar/graphics/optionmenu.py | 8 | ||||
-rw-r--r-- | sugar/graphics/popup.py | 8 |
3 files changed, 16 insertions, 2 deletions
diff --git a/sugar/graphics/canvasicon.py b/sugar/graphics/canvasicon.py index 76d29b0..fe04074 100644 --- a/sugar/graphics/canvasicon.py +++ b/sugar/graphics/canvasicon.py @@ -355,7 +355,7 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem): [x, y] = context.translate_to_screen(self) # TODO: Any better place to do this? - popup.props.box_width = max(popup.props.box_width, + popup.props.box_width = max(popup.get_width_request(), self.get_width_request()) [width, height] = self.get_allocation() diff --git a/sugar/graphics/optionmenu.py b/sugar/graphics/optionmenu.py index edd1d39..f5a4417 100644 --- a/sugar/graphics/optionmenu.py +++ b/sugar/graphics/optionmenu.py @@ -64,6 +64,8 @@ class OptionMenu(hippo.CanvasBox, hippo.CanvasItem): self._round_box = RoundBox() self._round_box.props.border_color = color.FRAME_BORDER.get_int() + self._round_box.props.spacing = units.points_to_pixels(3) + self._round_box.props.padding = units.points_to_pixels(1) self.append(self._round_box, hippo.PACK_EXPAND) self._canvas_text = hippo.CanvasText() @@ -111,10 +113,14 @@ class OptionMenu(hippo.CanvasBox, hippo.CanvasItem): [x, y] = context.translate_to_screen(self._round_box) # TODO: Any better place to do this? - self._menu.props.box_width = self.get_width_request() + self._menu.props.box_width = max(self.get_width_request(), + self._menu.get_width_request()) [width, height] = self._round_box.get_allocation() self._menu.popup(x, y + height) + + # Grab the pointer so the menu will popdown on mouse click. + self._menu.grab_pointer() def _menu_action_cb(self, menu, menu_item): action_id = menu_item.props.action_id diff --git a/sugar/graphics/popup.py b/sugar/graphics/popup.py index 5c63b6e..d0bee06 100644 --- a/sugar/graphics/popup.py +++ b/sugar/graphics/popup.py @@ -46,5 +46,13 @@ class Popup(hippo.CanvasBox, hippo.CanvasItem): self._window.hide() self._visible = False + def grab_pointer(self): + gtk.gdk.pointer_grab(self._window.window, owner_events=False, + event_mask=gtk.gdk.BUTTON_PRESS_MASK | + gtk.gdk.BUTTON_RELEASE_MASK | + gtk.gdk.ENTER_NOTIFY_MASK | + gtk.gdk.LEAVE_NOTIFY_MASK | + gtk.gdk.POINTER_MOTION_MASK) + def _button_press_event_cb(self, menu, event): self.emit('action-completed') |