From cdeb2595ebae595a15c919aa97e39437d757dd2f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Manuel=20Qui=C3=B1ones?= <manuq@laptop.org>
Date: Thu, 6 Dec 2012 16:48:32 -0300
Subject: [PATCH shell 2/2] Buddy icons: popdown palette inmediatly after
mouse click - SL #4253
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Mail-Followup-To: <sugar-devel@lists.sugarlabs.org>
The current implementation of the palette requires that we explicitly
call the popdown method of the palette after each item is activated.
This affects the mouse interaction, in touch interaction the palette
is dismissed correctly.
Signed-off-by: Manuel Quiñones <manuq@laptop.org>
---
src/jarabe/desktop/favoritesview.py | 6 ++++--
src/jarabe/view/buddymenu.py | 8 ++++++++
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py
index a9358f6..c55549f 100644
a
|
b
|
class OwnerIcon(BuddyIcon): |
648 | 648 | self._register_menu = PaletteMenuItem(_('Register again'), |
649 | 649 | 'media-record') |
650 | 650 | |
651 | | self._register_menu.connect('activate', self.__register_activate_cb) |
| 651 | self._register_menu.connect('activate', self.__register_activate_cb, |
| 652 | palette) |
652 | 653 | palette.menu_box.pack_end(self._register_menu, True, True, 0) |
653 | 654 | self._register_menu.show() |
654 | 655 | |
… |
… |
class OwnerIcon(BuddyIcon): |
656 | 657 | |
657 | 658 | return palette |
658 | 659 | |
659 | | def __register_activate_cb(self, menuitem): |
| 660 | def __register_activate_cb(self, menuitem, palette): |
| 661 | palette.popdown(immediate=True) |
660 | 662 | self.emit('register-activate') |
661 | 663 | |
662 | 664 | def set_registered(self): |
diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py
index e38d215..9531f95 100644
a
|
b
|
class BuddyMenu(Palette): |
117 | 117 | home_window.busy_during_delayed_action(action) |
118 | 118 | |
119 | 119 | def __logout_activate_cb(self, menu_item): |
| 120 | self.popdown(immediate=True) |
120 | 121 | self._quit(get_session_manager().logout) |
121 | 122 | |
122 | 123 | def __reboot_activate_cb(self, menu_item): |
| 124 | self.popdown(immediate=True) |
123 | 125 | self._quit(get_session_manager().reboot) |
124 | 126 | |
125 | 127 | def __shutdown_activate_cb(self, menu_item): |
| 128 | self.popdown(immediate=True) |
126 | 129 | self._quit(get_session_manager().shutdown) |
127 | 130 | |
128 | 131 | def __controlpanel_activate_cb(self, menu_item): |
| 132 | self.popdown(immediate=True) |
| 133 | |
129 | 134 | # hide the frame when control panel is shown |
130 | 135 | import jarabe.frame |
131 | 136 | frame = jarabe.frame.get_view() |
… |
… |
class BuddyMenu(Palette): |
165 | 170 | self.set_primary_text(GLib.markup_escape_text(buddy.props.nick)) |
166 | 171 | |
167 | 172 | def _make_friend_cb(self, menuitem): |
| 173 | self.popdown(immediate=True) |
168 | 174 | friends.get_model().make_friend(self._buddy) |
169 | 175 | |
170 | 176 | def _remove_friend_cb(self, menuitem): |
| 177 | self.popdown(immediate=True) |
171 | 178 | friends.get_model().remove(self._buddy) |
172 | 179 | |
173 | 180 | def _invite_friend_cb(self, menuitem): |
| 181 | self.popdown(immediate=True) |
174 | 182 | activity = shell.get_model().get_active_activity() |
175 | 183 | service = activity.get_service() |
176 | 184 | if service: |