[maemo-commits] [maemo-commits] r12090 - in projects/haf/trunk/gtk+: . gtk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Jun 4 16:19:24 EEST 2007
- Previous message: [maemo-commits] r12089 - projects/haf/trunk/hildon-theme-plankton
- Next message: [maemo-commits] r12091 - in projects/haf/trunk/hildon-desktop: . debian libhildondesktop src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: xan Date: 2007-06-04 16:18:28 +0300 (Mon, 04 Jun 2007) New Revision: 12090 Modified: projects/haf/trunk/gtk+/ChangeLog projects/haf/trunk/gtk+/gtk/gtkwidget.c Log: 2007-06-04 Xan Lopez <xan.lopez at nokia.com> * gtk/gtkwidget.c (gtk_widget_propagate_state): apply patch from http://bugzilla.gnome.org/show_bug.cgi?id=435840 to fix inconsitency in the SAVED_STATE of a widget hierarchy that arises in some situations. Modified: projects/haf/trunk/gtk+/ChangeLog =================================================================== --- projects/haf/trunk/gtk+/ChangeLog 2007-06-04 13:15:01 UTC (rev 12089) +++ projects/haf/trunk/gtk+/ChangeLog 2007-06-04 13:18:28 UTC (rev 12090) @@ -1,3 +1,9 @@ +2007-06-04 Xan Lopez <xan.lopez at nokia.com> + + * gtk/gtkwidget.c (gtk_widget_propagate_state): apply patch from + http://bugzilla.gnome.org/show_bug.cgi?id=435840 to fix inconsitency + in the SAVED_STATE of a widget hierarchy that arises in some situations. + 2007-05-31 Tommi Komulainen <tommi.komulainen at nokia.com> * gtk/gtkmenuitem.c (gtk_menu_item_position_menu): Switch submenu Modified: projects/haf/trunk/gtk+/gtk/gtkwidget.c =================================================================== --- projects/haf/trunk/gtk+/gtk/gtkwidget.c 2007-06-04 13:15:01 UTC (rev 12089) +++ projects/haf/trunk/gtk+/gtk/gtkwidget.c 2007-06-04 13:18:28 UTC (rev 12090) @@ -7468,36 +7468,28 @@ gtk_widget_propagate_state (GtkWidget *widget, GtkStateData *data) { - guint8 old_state; + guint8 old_state = GTK_WIDGET_STATE (widget); + guint8 old_saved_state = GTK_WIDGET_SAVED_STATE (widget); /* don't call this function with state==GTK_STATE_INSENSITIVE, * parent_sensitive==TRUE on a sensitive widget */ - old_state = GTK_WIDGET_STATE (widget); if (data->parent_sensitive) - { - GTK_WIDGET_SET_FLAGS (widget, GTK_PARENT_SENSITIVE); + GTK_WIDGET_SET_FLAGS (widget, GTK_PARENT_SENSITIVE); + else + GTK_WIDGET_UNSET_FLAGS (widget, GTK_PARENT_SENSITIVE); - if (GTK_WIDGET_IS_SENSITIVE (widget)) - { - if (data->state_restoration) - GTK_WIDGET_STATE (widget) = GTK_WIDGET_SAVED_STATE (widget); - else - GTK_WIDGET_STATE (widget) = data->state; - } + if (GTK_WIDGET_IS_SENSITIVE (widget)) + { + if (data->state_restoration) + GTK_WIDGET_STATE (widget) = GTK_WIDGET_SAVED_STATE (widget); else - { - GTK_WIDGET_STATE (widget) = GTK_STATE_INSENSITIVE; - if (!data->state_restoration && - data->state != GTK_STATE_INSENSITIVE) - GTK_WIDGET_SAVED_STATE (widget) = data->state; - } + GTK_WIDGET_STATE (widget) = data->state; } else { - GTK_WIDGET_UNSET_FLAGS (widget, GTK_PARENT_SENSITIVE); if (!data->state_restoration) { if (data->state != GTK_STATE_INSENSITIVE) @@ -7517,19 +7509,19 @@ gtk_window_set_focus (GTK_WINDOW (window), NULL); } - if (old_state != GTK_WIDGET_STATE (widget)) + if (old_state != GTK_WIDGET_STATE (widget) || + old_saved_state != GTK_WIDGET_SAVED_STATE (widget)) { g_object_ref (widget); - + if (!GTK_WIDGET_IS_SENSITIVE (widget) && GTK_WIDGET_HAS_GRAB (widget)) gtk_grab_remove (widget); - + g_signal_emit (widget, widget_signals[STATE_CHANGED], 0, old_state); - + if (GTK_IS_CONTAINER (widget)) { data->parent_sensitive = (GTK_WIDGET_IS_SENSITIVE (widget) != FALSE); - data->state = GTK_WIDGET_STATE (widget); if (data->use_forall) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) gtk_widget_propagate_state,
- Previous message: [maemo-commits] r12089 - projects/haf/trunk/hildon-theme-plankton
- Next message: [maemo-commits] r12091 - in projects/haf/trunk/hildon-desktop: . debian libhildondesktop src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]