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
This commit is contained in:
committed by
Benjamin Otte
parent
690fb31fb4
commit
047d2b5f6d
@ -11652,17 +11652,15 @@ gtk_widget_emit_direction_changed (GtkWidget *widget,
|
|||||||
gtk_widget_update_pango_context (widget);
|
gtk_widget_update_pango_context (widget);
|
||||||
|
|
||||||
direction = gtk_widget_get_direction (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)
|
switch (direction)
|
||||||
{
|
{
|
||||||
case GTK_TEXT_DIR_LTR:
|
case GTK_TEXT_DIR_LTR:
|
||||||
state |= GTK_STATE_FLAG_DIR_LTR;
|
state = GTK_STATE_FLAG_DIR_LTR;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GTK_TEXT_DIR_RTL:
|
case GTK_TEXT_DIR_RTL:
|
||||||
state |= GTK_STATE_FLAG_DIR_RTL;
|
state = GTK_STATE_FLAG_DIR_RTL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GTK_TEXT_DIR_NONE:
|
case GTK_TEXT_DIR_NONE:
|
||||||
@ -11671,7 +11669,9 @@ gtk_widget_emit_direction_changed (GtkWidget *widget,
|
|||||||
break;
|
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);
|
g_signal_emit (widget, widget_signals[DIRECTION_CHANGED], 0, old_dir);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user