From dee75374626528ea3398d2ac67bf852c8a98838b Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Wed, 6 Jun 2007 00:51:01 -0400 Subject: [PATCH] Palette: speed up --- sugar/graphics/palette.py | 30 ++++++++++++------------------ sugar/graphics/toolbutton.py | 2 +- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/sugar/graphics/palette.py b/sugar/graphics/palette.py index 7c3e6f55..93b8361d 100644 --- a/sugar/graphics/palette.py +++ b/sugar/graphics/palette.py @@ -62,7 +62,7 @@ class Palette(gtk.Window): if not self._is_tooltip: self._separator = gtk.HSeparator() self._separator.hide() - + self._menu_bar = gtk.MenuBar() self._menu_bar.set_pack_direction(gtk.PACK_DIRECTION_TTB) self._menu_bar.show() @@ -89,6 +89,10 @@ class Palette(gtk.Window): self.connect('key-press-event', self._on_key_press_event_cb) self.set_border_width(self._WIN_BORDER) + + self._width, self._height = self.size_request() + self._scr_width = gtk.gdk.screen_width() + self._scr_height = gtk.gdk.screen_height() def do_set_property(self, pspec, value): if pspec.name == 'parent': @@ -127,19 +131,13 @@ class Palette(gtk.Window): self.move(move_x, move_y) def _try_position(self, alignment): - scr_width = gtk.gdk.screen_width() - scr_height = gtk.gdk.screen_height() - - plt_width, plt_height = self.size_request() - move_x, move_y = self._calc_position(alignment) self.move(move_x, move_y) plt_x, plt_y = self.window.get_origin() - if (plt_x<0 or plt_x+plt_width>scr_width) or (plt_y<0 or plt_y+plt_height>scr_height): + if (plt_x<0 or plt_x+self._width>self._scr_width) or (plt_y<0 or plt_y+self._height>self._scr_height): return False else: - self.move(move_x, move_y) return True def _calc_position(self, alignment): @@ -147,22 +145,20 @@ class Palette(gtk.Window): parent_rectangle = self._parent_widget.get_allocation() palette_rectangle = self.get_allocation() - palette_width, palette_height = self.size_request() - if alignment == ALIGNMENT_BOTTOM_LEFT: move_x = win_x + parent_rectangle.x move_y = win_y + parent_rectangle.y + parent_rectangle.height elif alignment == ALIGNMENT_BOTTOM_RIGHT: - move_x = (win_x + parent_rectangle.x + parent_rectangle.width) - palette_width + move_x = (win_x + parent_rectangle.x + parent_rectangle.width) - self._width move_y = win_y + parent_rectangle.y + parent_rectangle.height elif alignment == ALIGNMENT_LEFT_BOTTOM: - move_x = (win_x + parent_rectangle.x) - palette_width + move_x = (win_x + parent_rectangle.x) - self._width move_y = win_y + parent_rectangle.y elif alignment == ALIGNMENT_LEFT_TOP: - move_x = (win_x + parent_rectangle.x) - palette_width + move_x = (win_x + parent_rectangle.x) - self._width move_y = (win_y + parent_rectangle.y + parent_rectangle.height) - palette_rectangle.height elif alignment == ALIGNMENT_RIGHT_BOTTOM: @@ -178,7 +174,7 @@ class Palette(gtk.Window): move_y = (win_y + parent_rectangle.y) - (palette_rectangle.height) elif alignment == ALIGNMENT_TOP_RIGHT: - move_x = (win_x + parent_rectangle.x + parent_rectangle.width) - palette_width + move_x = (win_x + parent_rectangle.x + parent_rectangle.width) - self._width move_y = (win_y + parent_rectangle.y) - (palette_rectangle.height) return move_x, move_y @@ -212,8 +208,8 @@ class Palette(gtk.Window): # We need to know if the mouse pointer continue inside # the parent widget (opener) pointer_x, pointer_y = self._parent_widget.get_pointer() - parent_alloc = self._parent_widget.get_allocation() - pointer_rect = gdk.Rectangle(pointer_x + parent_alloc.x, pointer_y + parent_alloc.y, 1, 1) + self._parent_alloc = self._parent_widget.get_allocation() + pointer_rect = gdk.Rectangle(pointer_x + self._parent_alloc.x, pointer_y + self._parent_alloc.y, 1, 1) if (self._parent_widget.allocation.intersect(pointer_rect).width == 0): return @@ -271,5 +267,3 @@ class Palette(gtk.Window): ((keyval == keysyms.Up or keyval == keysyms.KP_Up) and state == gdk.MOD1_MASK)): self._close_palette_cb() - elif keyval == keysyms.Tab: - self._close_palette_cb() diff --git a/sugar/graphics/toolbutton.py b/sugar/graphics/toolbutton.py index f624caf1..808cc34e 100644 --- a/sugar/graphics/toolbutton.py +++ b/sugar/graphics/toolbutton.py @@ -22,7 +22,7 @@ from sugar.graphics.icon import Icon from sugar.graphics.palette import * class ToolButton(gtk.ToolButton): - _POPUP_PALETTE_DELAY = 0.5 + _POPUP_PALETTE_DELAY = 0.15 def __init__(self, icon_name=None): gtk.ToolButton.__init__(self)