From 01fbe53175e99ce37a3335b622c9d50a93ccb541 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Wed, 25 Jul 2007 14:01:07 +0000 Subject: Don't follow the cursor when expanding to secondary palette. --- (limited to 'sugar/graphics') diff --git a/sugar/graphics/palette.py b/sugar/graphics/palette.py index 8996138..b779eec 100644 --- a/sugar/graphics/palette.py +++ b/sugar/graphics/palette.py @@ -69,6 +69,8 @@ class Palette(gobject.GObject): gobject.GObject.__init__(self) self._full_request = [0, 0] + self._cursor_x = 0 + self._cursor_y = 0 self._state = self._SECONDARY self._invoker = None self._group_id = None @@ -250,6 +252,12 @@ class Palette(gobject.GObject): self._set_state(state) + def _update_cursor_position(self): + display = gtk.gdk.display_get_default() + screen, x, y, mask = display.get_pointer() + self._cursor_x = x + self._cursor_y = y + def _update_position(self): x = y = 0 @@ -259,11 +267,11 @@ class Palette(gobject.GObject): position = self._position if position == self.AT_CURSOR: - display = gtk.gdk.display_get_default() - screen, x, y, mask = display.get_pointer() dist = style.PALETTE_CURSOR_DISTANCE + rect = gtk.gdk.Rectangle(self._cursor_x - dist, + self._cursor_y - dist, + dist * 2, dist * 2) - rect = gtk.gdk.Rectangle(x - dist, y - dist, dist * 2, dist * 2) x, y = self._get_at_cursor_position(rect) elif position == self.AROUND: x, y = self._get_around_position() @@ -282,6 +290,7 @@ class Palette(gobject.GObject): if self._up: return + self._update_cursor_position() self._update_full_request() self._invoker.connect_to_parent() -- cgit v0.9.1