[gtk+] Update GtkImage icons when the direction is changed



commit 047d2b5f6d63cce2321e3ce5f7436aea0c629c9b
Author: Debarshi Ray <debarshir gnome org>
Date:   Tue May 27 20:41:50 2014 +0200

    Update GtkImage icons when the direction is changed
    
    Don't call gtk_widget_set_state_flags(), it filters the direction flags.
    Instead, call gtk_widget_update_state_flags() directly.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=730833

 gtk/gtkwidget.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 9397ff1..6453059 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -11652,17 +11652,15 @@ gtk_widget_emit_direction_changed (GtkWidget        *widget,
   gtk_widget_update_pango_context (widget);
 
   direction = gtk_widget_get_direction (widget);
-  state = widget->priv->state_flags;
-  state &= GTK_STATE_FLAG_DIR_LTR | GTK_STATE_FLAG_DIR_RTL;
 
   switch (direction)
     {
     case GTK_TEXT_DIR_LTR:
-      state |= GTK_STATE_FLAG_DIR_LTR;
+      state = GTK_STATE_FLAG_DIR_LTR;
       break;
 
     case GTK_TEXT_DIR_RTL:
-      state |= GTK_STATE_FLAG_DIR_RTL;
+      state = GTK_STATE_FLAG_DIR_RTL;
       break;
 
     case GTK_TEXT_DIR_NONE:
@@ -11671,7 +11669,9 @@ gtk_widget_emit_direction_changed (GtkWidget        *widget,
       break;
     }
 
-  gtk_widget_set_state_flags (widget, state, TRUE);
+  gtk_widget_update_state_flags (widget,
+                                 state,
+                                 state ^ (GTK_STATE_FLAG_DIR_LTR | GTK_STATE_FLAG_DIR_RTL));
 
   g_signal_emit (widget, widget_signals[DIRECTION_CHANGED], 0, old_dir);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]