After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 642918 - Sensitivity of buttons sometimes screws up
Sensitivity of buttons sometimes screws up
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Widget: Other
2.99.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2011-02-21 21:43 UTC by Cosimo Cecchi
Modified: 2011-03-30 15:14 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Cosimo Cecchi 2011-02-21 21:43:25 UTC
Sometimes buttons screw up their sensitivity. I tried to write a reduced testcase for this bug, but failed, because it seems to be there only with somewhat complex UI layouts.
An example of where I've seen this reliably is Totem's sidebar 'Save playlist as' button; another example is the Control Center 'Region and Language' layouts (in the buttons below the treeview).
It also happens in nautilus back/forward actions when you use split pane.
Comment 1 Benjamin Otte (Company) 2011-03-30 15:14:21 UTC
commit 0bfc95faa35ec5ac1a0220d04cc0c126acb034b5
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Mar 30 16:38:45 2011 +0200

    widget: Propagate the right states to the widget when setting the parent

commit 1e4396535065434c352881df8c26e050292c8c62
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Mar 30 16:15:21 2011 +0200

    widget: Get rid of parent_sensitive flag
    
    Instead rely on state_flags & GTK_STATE_FLAG_INSENSITIVE to tell us if a
    widget is sensitive.
    This has the huge benefit that the way the widget is actually rendered
    corresponds to the return value of gtk_widget_is_sensitive().
    
    As a side effect, we do not ever allow unsetting the
    GTK_STATE_FLAG_INSENSITIVE for a widget the is set to not be sensitive
    (via gtk_widget_set_sensitive()). This way we stop propagation of making
    stuff sensitive at insensitive widgets.