Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEduardo Silva <edsiper@monotop.(none)>2007-06-06 04:51:01 (GMT)
committer Eduardo Silva <edsiper@monotop.(none)>2007-06-06 04:51:01 (GMT)
commitdee75374626528ea3398d2ac67bf852c8a98838b (patch)
treef8407883f2dccf4ee480b1cc9a399d2b378ffcbe
parentf79d5a63dbe0da976b028f1436e67708c0ea5f2f (diff)
Palette: speed up
-rw-r--r--sugar/graphics/palette.py30
-rw-r--r--sugar/graphics/toolbutton.py2
2 files changed, 13 insertions, 19 deletions
diff --git a/sugar/graphics/palette.py b/sugar/graphics/palette.py
index 7c3e6f5..93b8361 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 f624caf..808cc34 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)