diff --git a/extensions/deviceicon/battery.py b/extensions/deviceicon/battery.py
index fa1a40d..7fcca8d 100644
a
|
b
|
class DeviceView(TrayIcon): |
69 | 69 | self._model = DeviceModel(battery) |
70 | 70 | self.palette = BatteryPalette(glib.markup_escape_text(_('My Battery'))) |
71 | 71 | self.palette.set_group_id('frame') |
72 | | self.connect('button-release-event', self.__button_release_event_cb) |
| 72 | self.palette_invoker.props.toggle_palette = True |
73 | 73 | self._model.connect('updated', |
74 | 74 | self.__battery_status_changed_cb) |
75 | 75 | self._update_info() |
76 | 76 | |
77 | | def __button_release_event_cb(self, widget, event): |
78 | | self.palette_invoker.notify_right_click() |
79 | | return True |
80 | | |
81 | 77 | def _update_info(self): |
82 | 78 | name = _ICON_NAME |
83 | 79 | current_level = self._model.props.level |
diff --git a/extensions/deviceicon/network.py b/extensions/deviceicon/network.py
index f014418..b8724e3 100644
a
|
b
|
class WirelessDeviceView(ToolButton): |
399 | 399 | self._icon.show() |
400 | 400 | |
401 | 401 | self.set_palette_invoker(FrameWidgetInvoker(self)) |
| 402 | self.palette_invoker.props.toggle_palette = True |
| 403 | |
402 | 404 | self._palette = WirelessPalette(self._display_name) |
403 | 405 | self._palette.connect('deactivate-connection', |
404 | 406 | self.__deactivate_connection_cb) |
405 | 407 | self.set_palette(self._palette) |
406 | 408 | self._palette.set_group_id('frame') |
407 | | self.connect('clicked', self.__toolbutton_clicked_cb) |
408 | 409 | |
409 | 410 | self._device_props = dbus.Interface(self._device, |
410 | 411 | dbus.PROPERTIES_IFACE) |
… |
… |
class WirelessDeviceView(ToolButton): |
575 | 576 | def __activate_error_cb(self, err): |
576 | 577 | logging.debug('Failed to create network: %s', err) |
577 | 578 | |
578 | | def __toolbutton_clicked_cb(self, button): |
579 | | self.palette_invoker.notify_right_click() |
580 | | return True |
581 | | |
582 | 579 | |
583 | 580 | class OlpcMeshDeviceView(ToolButton): |
584 | 581 | _ICON_NAME = 'network-mesh' |
… |
… |
class OlpcMeshDeviceView(ToolButton): |
604 | 601 | self._icon.show() |
605 | 602 | |
606 | 603 | self.set_palette_invoker(FrameWidgetInvoker(self)) |
| 604 | self.palette_invoker.props.toggle_palette = True |
| 605 | |
607 | 606 | title = _('Mesh Network') |
608 | 607 | self._palette = WirelessPalette(glib.markup_escape_text(title)) |
609 | 608 | self._palette.connect('deactivate-connection', |
610 | 609 | self.__deactivate_connection) |
611 | 610 | self.set_palette(self._palette) |
612 | 611 | self._palette.set_group_id('frame') |
613 | | self.connect('clicked', self.__toolbutton_clicked_cb) |
614 | 612 | |
615 | 613 | self.update_state(state) |
616 | 614 | |
… |
… |
class OlpcMeshDeviceView(ToolButton): |
695 | 693 | except dbus.exceptions.DBusException: |
696 | 694 | pass |
697 | 695 | |
698 | | def __toolbutton_clicked_cb(self, button): |
699 | | self.palette_invoker.notify_right_click() |
700 | | return True |
701 | | |
702 | 696 | |
703 | 697 | class WiredDeviceView(TrayIcon): |
704 | 698 | |
… |
… |
class WiredDeviceView(TrayIcon): |
716 | 710 | self.set_palette(self._palette) |
717 | 711 | self._palette.set_group_id('frame') |
718 | 712 | self._palette.set_connected(speed, address) |
719 | | self.connect('button-release-event', self.__button_release_event_cb) |
720 | | |
721 | | def __button_release_event_cb(self, widget, event): |
722 | | self.palette_invoker.notify_right_click() |
723 | | return True |
| 713 | self.palette_invoker.props.toggle_palette = True |
724 | 714 | |
725 | 715 | |
726 | 716 | class GsmDeviceView(TrayIcon): |
… |
… |
class GsmDeviceView(TrayIcon): |
742 | 732 | self._device = device |
743 | 733 | self._palette = None |
744 | 734 | self.set_palette_invoker(FrameWidgetInvoker(self)) |
745 | | self.connect('button-release-event', self.__button_release_event_cb) |
| 735 | self.palette_invoker.props.toggle_palette = True |
746 | 736 | |
747 | 737 | self._bus.add_signal_receiver(self.__state_changed_cb, |
748 | 738 | signal_name='StateChanged', |
… |
… |
class GsmDeviceView(TrayIcon): |
769 | 759 | |
770 | 760 | return palette |
771 | 761 | |
772 | | def __button_release_event_cb(self, widget, event): |
773 | | self.palette_invoker.notify_right_click() |
774 | | return True |
775 | | |
776 | 762 | def __gsm_connect_cb(self, palette, data=None): |
777 | 763 | connection = network.find_gsm_connection() |
778 | 764 | if connection is not None: |
diff --git a/extensions/deviceicon/speaker.py b/extensions/deviceicon/speaker.py
index 5dab329..8260d49 100644
a
|
b
|
class DeviceView(TrayIcon): |
46 | 46 | TrayIcon.__init__(self, icon_name=_ICON_NAME, xo_color=self._color) |
47 | 47 | |
48 | 48 | self.set_palette_invoker(FrameWidgetInvoker(self)) |
| 49 | self.palette_invoker.props.toggle_palette = True |
49 | 50 | |
50 | 51 | self._model = DeviceModel() |
51 | 52 | self._model.connect('notify::level', self.__speaker_status_changed_cb) |
… |
… |
class DeviceView(TrayIcon): |
53 | 54 | |
54 | 55 | self.connect('draw', self.__draw_cb) |
55 | 56 | |
56 | | self._icon_widget.connect('button-release-event', |
57 | | self.__button_release_event_cb) |
58 | | |
59 | 57 | self._update_info() |
60 | 58 | |
61 | 59 | def create_palette(self): |
… |
… |
class DeviceView(TrayIcon): |
78 | 76 | step=-1) |
79 | 77 | self.icon.props.xo_color = xo_color |
80 | 78 | |
81 | | def __button_release_event_cb(self, widget, event): |
82 | | if event.button != 1: |
83 | | return False |
84 | | |
85 | | self.palette_invoker.notify_right_click() |
86 | | return True |
87 | | |
88 | 79 | def __draw_cb(self, *args): |
89 | 80 | self._update_info() |
90 | 81 | |
diff --git a/extensions/deviceicon/speech.py b/extensions/deviceicon/speech.py
index c3115f7..1f7bf02 100644
a
|
b
|
class SpeechDeviceView(TrayIcon): |
45 | 45 | self._color = XoColor(client.get_string('/desktop/sugar/user/color')) |
46 | 46 | TrayIcon.__init__(self, icon_name=_ICON_NAME, xo_color=self._color) |
47 | 47 | self.set_palette_invoker(FrameWidgetInvoker(self)) |
| 48 | self.palette_invoker.props.toggle_palette = True |
| 49 | |
48 | 50 | self._manager = speech.get_speech_manager() |
49 | | self._icon_widget.connect('button-release-event', |
50 | | self.__button_release_event_cb) |
51 | 51 | |
52 | 52 | def create_palette(self): |
53 | 53 | label = glib.markup_escape_text(_('Speech')) |
… |
… |
class SpeechDeviceView(TrayIcon): |
55 | 55 | palette.set_group_id('frame') |
56 | 56 | return palette |
57 | 57 | |
58 | | def __button_release_event_cb(self, widget, event): |
59 | | self.palette_invoker.notify_right_click() |
60 | | return True |
61 | | |
62 | 58 | |
63 | 59 | class SpeechPalette(Palette): |
64 | 60 | |
diff --git a/extensions/deviceicon/volume.py b/extensions/deviceicon/volume.py
index f1f223c..6930811 100644
a
|
b
|
class DeviceView(TrayIcon): |
64 | 64 | TrayIcon.__init__(self, icon_name=icon_name, xo_color=color) |
65 | 65 | |
66 | 66 | self.set_palette_invoker(FrameWidgetInvoker(self)) |
67 | | |
68 | | self.connect('button-release-event', self.__button_release_event_cb) |
| 67 | self.palette_invoker.props.toggle_palette = True |
69 | 68 | |
70 | 69 | def create_palette(self): |
71 | 70 | palette = VolumePalette(self._mount) |
… |
… |
class DeviceView(TrayIcon): |
86 | 85 | |
87 | 86 | return palette |
88 | 87 | |
89 | | def __button_release_event_cb(self, widget, event): |
90 | | self.palette_invoker.notify_right_click() |
91 | | return True |
92 | | |
93 | 88 | def __show_contents_cb(self, menu_item): |
94 | 89 | journal = journalactivity.get_journal() |
95 | 90 | journal.set_active_volume(self._mount) |
diff --git a/src/jarabe/desktop/networkviews.py b/src/jarabe/desktop/networkviews.py
index 64b4be3..c7d21c6 100644
a
|
b
|
class WirelessNetworkView(EventPulsingIcon): |
86 | 86 | (xocolor.colors[index][0], |
87 | 87 | xocolor.colors[index][1])) |
88 | 88 | |
89 | | self.connect('button-release-event', self.__button_release_event_cb) |
90 | | |
91 | 89 | pulse_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), |
92 | 90 | style.COLOR_TRANSPARENT.get_svg())) |
93 | 91 | self.props.pulse_color = pulse_color |
94 | 92 | |
| 93 | self.props.palette_invoker.props.toggle_palette = True |
95 | 94 | self._palette = self._create_palette() |
96 | 95 | self.set_palette(self._palette) |
97 | 96 | self._palette_icon.props.xo_color = self._color |
… |
… |
class WirelessNetworkView(EventPulsingIcon): |
332 | 331 | def __connect_activate_cb(self, icon): |
333 | 332 | self._connect() |
334 | 333 | |
335 | | def __button_release_event_cb(self, icon, event): |
336 | | self._palette.popup(immediate=True, |
337 | | state=palette.Palette.SECONDARY) |
338 | | |
339 | 334 | def _connect(self): |
340 | 335 | # Activate existing connection, if there is one |
341 | 336 | connection = network.find_connection_by_ssid(self._ssid) |
diff --git a/src/jarabe/frame/clipboardicon.py b/src/jarabe/frame/clipboardicon.py
index 1cee867..81b3131 100644
a
|
b
|
class ClipboardIcon(RadioToolButton): |
40 | 40 | RadioToolButton.__init__(self, group=group) |
41 | 41 | |
42 | 42 | self.props.palette_invoker = FrameWidgetInvoker(self) |
| 43 | self.palette_invoker.props.toggle_palette = True |
43 | 44 | |
44 | 45 | self._cb_object = cb_object |
45 | 46 | self.owns_clipboard = False |
… |
… |
class ClipboardIcon(RadioToolButton): |
62 | 63 | |
63 | 64 | child = self.get_child() |
64 | 65 | child.connect('drag_data_get', self._drag_data_get_cb) |
65 | | child.connect('button-release-event', self.__button_release_event_cb) |
66 | 66 | self.connect('notify::active', self._notify_active_cb) |
67 | 67 | |
68 | 68 | def create_palette(self): |
… |
… |
class ClipboardIcon(RadioToolButton): |
70 | 70 | palette.set_group_id('frame') |
71 | 71 | return palette |
72 | 72 | |
73 | | def __button_release_event_cb(self, widget, event): |
74 | | if event.button != 1: |
75 | | return False |
76 | | self.props.palette_invoker.notify_right_click() |
77 | | return False |
78 | | |
79 | 73 | def get_object_id(self): |
80 | 74 | return self._cb_object.get_id() |
81 | 75 | |
diff --git a/src/jarabe/frame/friendstray.py b/src/jarabe/frame/friendstray.py
index 00d951f..099a3b6 100644
a
|
b
|
class FriendIcon(TrayIcon): |
33 | 33 | self._buddy = buddy |
34 | 34 | self.set_palette_invoker(FrameWidgetInvoker(self)) |
35 | 35 | self.palette_invoker.cache_palette = False |
36 | | self.connect('button-release-event', self.__button_release_event_cb) |
| 36 | self.palette_invoker.props.toggle_palette = True |
37 | 37 | |
38 | 38 | def create_palette(self): |
39 | 39 | palette = BuddyMenu(self._buddy) |
… |
… |
class FriendIcon(TrayIcon): |
41 | 41 | palette.set_group_id('frame') |
42 | 42 | return palette |
43 | 43 | |
44 | | def __button_release_event_cb(self, widget, event): |
45 | | self.palette_invoker.notify_right_click() |
46 | | return True |
47 | | |
48 | 44 | |
49 | 45 | class FriendsTray(VTray): |
50 | 46 | def __init__(self): |