From 7cd855220792bf3847b13ba5d738e862022bec2e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Manuel=20Qui=C3=B1ones?= <manuq@laptop.org>
Date: Mon, 5 Nov 2012 09:33:00 -0300
Subject: [PATCH toolkit-gtk3 1/2] Palette Menu Item: set/unset INSENSITIVE
state flag - SL #4144
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Mail-Followup-To: <sugar-devel@lists.sugarlabs.org>
The theme will display the insensitive items grayed out.
Signed-off-by: Manuel Quiñones <manuq@laptop.org>
---
src/sugar3/graphics/palettemenuitem.py | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/sugar3/graphics/palettemenuitem.py b/src/sugar3/graphics/palettemenuitem.py
index 6ce8330..7861a0b 100644
a
|
b
|
class PaletteMenuItem(Gtk.EventBox): |
43 | 43 | def __init__(self, text_label=None, icon_name=None, text_maxlen=60, |
44 | 44 | xo_color=None, file_name=None): |
45 | 45 | Gtk.EventBox.__init__(self) |
46 | | self._sensitive = True |
47 | 46 | self.set_above_child(True) |
48 | 47 | self.icon = None |
49 | 48 | |
… |
… |
class PaletteMenuItem(Gtk.EventBox): |
105 | 104 | self._hbox.reorder_child(icon, 0) |
106 | 105 | |
107 | 106 | def set_sensitive(self, sensitive): |
108 | | if self._sensitive == sensitive: |
| 107 | is_sensitive = bool(not self.get_state_flags() & \ |
| 108 | Gtk.StateFlags.INSENSITIVE) |
| 109 | if is_sensitive == sensitive: |
109 | 110 | return |
110 | 111 | |
111 | | self._sensitive = sensitive |
112 | 112 | if sensitive: |
113 | 113 | self.handler_unblock(self.id_bt_release_cb) |
114 | 114 | self.handler_unblock(self.id_enter_notify_cb) |
115 | 115 | self.handler_unblock(self.id_leave_notify_cb) |
| 116 | self.unset_state_flags(Gtk.StateFlags.INSENSITIVE) |
116 | 117 | else: |
117 | 118 | self.handler_block(self.id_bt_release_cb) |
118 | 119 | self.handler_block(self.id_enter_notify_cb) |
119 | 120 | self.handler_block(self.id_leave_notify_cb) |
120 | | self.modify_bg(Gtk.StateType.NORMAL, |
121 | | style.COLOR_BLACK.get_gdk_color()) |
| 121 | self.set_state_flags(self.get_state_flags() | \ |
| 122 | Gtk.StateFlags.INSENSITIVE, |
| 123 | clear=True) |