Ticket #4144: 0001-Palette-Menu-Item-set-unset-INSENSITIVE-state-flag-S.patch

File 0001-Palette-Menu-Item-set-unset-INSENSITIVE-state-flag-S.patch, 2.3 KB (added by manuq, 12 years ago)

Toolkit patch for the insensitive items.

  • src/sugar3/graphics/palettemenuitem.py

    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): 
    4343    def __init__(self, text_label=None, icon_name=None, text_maxlen=60,
    4444                 xo_color=None, file_name=None):
    4545        Gtk.EventBox.__init__(self)
    46         self._sensitive = True
    4746        self.set_above_child(True)
    4847        self.icon = None
    4948
    class PaletteMenuItem(Gtk.EventBox): 
    105104        self._hbox.reorder_child(icon, 0)
    106105
    107106    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:
    109110            return
    110111
    111         self._sensitive = sensitive
    112112        if sensitive:
    113113            self.handler_unblock(self.id_bt_release_cb)
    114114            self.handler_unblock(self.id_enter_notify_cb)
    115115            self.handler_unblock(self.id_leave_notify_cb)
     116            self.unset_state_flags(Gtk.StateFlags.INSENSITIVE)
    116117        else:
    117118            self.handler_block(self.id_bt_release_cb)
    118119            self.handler_block(self.id_enter_notify_cb)
    119120            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)