[gtk+/wip/matthiasc/gadget] checkbutton: Reorder nodes on direction-changed
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/matthiasc/gadget] checkbutton: Reorder nodes on direction-changed
- Date: Sun, 6 Dec 2015 20:02:34 +0000 (UTC)
commit 85f920a3a64252bb3328ad65c13941a619c1eed5
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Dec 6 12:43:19 2015 -0500
checkbutton: Reorder nodes on direction-changed
In rtl, the label is the first child.
gtk/gtkcheckbutton.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkcheckbutton.c b/gtk/gtkcheckbutton.c
index 3dd4a24..1b119f7 100644
--- a/gtk/gtkcheckbutton.c
+++ b/gtk/gtkcheckbutton.c
@@ -160,6 +160,31 @@ gtk_check_button_state_flags_changed (GtkWidget *widget,
}
static void
+gtk_check_button_direction_changed (GtkWidget *widget,
+ GtkTextDirection previous_direction)
+{
+ GtkCheckButtonPrivate *priv = gtk_check_button_get_instance_private (GTK_CHECK_BUTTON (widget));
+ GtkWidget *child;
+
+ child = gtk_bin_get_child (GTK_BIN (widget));
+ if (child)
+ {
+ GtkCssNode *node, *parent, *sibling;
+
+ node = gtk_css_gadget_get_node (priv->indicator_gadget);
+ parent = gtk_css_node_get_parent (node);
+ sibling = gtk_widget_get_css_node (child);
+
+ if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR)
+ gtk_css_node_insert_before (parent, node, sibling);
+ else
+ gtk_css_node_insert_after (parent, node, sibling);
+ }
+
+ GTK_WIDGET_CLASS (gtk_check_button_parent_class)->direction_changed (widget, previous_direction);
+}
+
+static void
gtk_check_button_finalize (GObject *object)
{
GtkCheckButtonPrivate *priv = gtk_check_button_get_instance_private (GTK_CHECK_BUTTON (object));
@@ -186,6 +211,7 @@ gtk_check_button_class_init (GtkCheckButtonClass *class)
widget_class->size_allocate = gtk_check_button_size_allocate;
widget_class->draw = gtk_check_button_draw;
widget_class->state_flags_changed = gtk_check_button_state_flags_changed;
+ widget_class->direction_changed = gtk_check_button_direction_changed;
gtk_widget_class_install_style_property (widget_class,
g_param_spec_int ("indicator-size",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]