From c9871633e3f3b38bcb8ae388ebeaaa81ad4123c9 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Mon, 25 Feb 2008 14:45:21 +0000 Subject: [PATCH 1/2] Fix #3611 and parts of #4084 by setting the palette to be a transient window of the actiity. --- sugar/graphics/palette.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sugar/graphics/palette.py b/sugar/graphics/palette.py index 85e60ac6..7ab35b65 100644 --- a/sugar/graphics/palette.py +++ b/sugar/graphics/palette.py @@ -414,6 +414,7 @@ class Palette(gtk.Window): self._update_full_request() self._alignment = self._invoker.get_alignment(self._full_request) self._update_position() + self.set_transient_for(self._invoker.get_toplevel()) self.menu.set_active(True) self.show() From 826bf9dd4caa07903346a756f34779da3c6c47b1 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Mon, 25 Feb 2008 16:12:08 +0000 Subject: [PATCH 2/2] Emit palette popup only after the window is mapped. This fixes ticket #3486. --- sugar/graphics/palette.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/sugar/graphics/palette.py b/sugar/graphics/palette.py index 7ab35b65..e84cc51f 100644 --- a/sugar/graphics/palette.py +++ b/sugar/graphics/palette.py @@ -151,6 +151,7 @@ class Palette(gtk.Window): self.set_border_width(self.style.xthickness) self.connect('realize', self._realize_cb) self.connect('destroy', self.__destroy_cb) + self.connect('map-event', self.__map_event_cb) self.palette_state = self.PRIMARY @@ -419,12 +420,6 @@ class Palette(gtk.Window): self.menu.set_active(True) self.show() - self._invoker.notify_popup() - - self._up = True - _palette_observer.emit('popup', self) - self.emit('popup') - def _hide(self): self._secondary_anim.stop() @@ -515,6 +510,13 @@ class Palette(gtk.Window): if self != palette: self._hide() + def __map_event_cb(self, widget, event): + self._invoker.notify_popup() + + self._up = True + _palette_observer.emit('popup', self) + self.emit('popup') + class PaletteActionBar(gtk.HButtonBox): def add_action(label, icon_name=None): button = Button(label)