[gtk+/wip/baedert/drawing: 293/348] entry: Fix node ordering
- From: Timm Bäder <baedert src gnome org>
 
- To: commits-list gnome org
 
- Cc: 
 
- Subject: [gtk+/wip/baedert/drawing: 293/348] entry: Fix node ordering
 
- Date: Sat,  8 Jul 2017 10:55:27 +0000 (UTC)
 
commit 17474675fa813a4d400436ab8770f451cdc9bb3d
Author: Timm Bäder <mail baedert org>
Date:   Mon Jun 26 14:50:48 2017 +0200
    entry: Fix node ordering
    
    Fix the icon order
 gtk/gtkentry.c |   30 +++++++++++++++++-------------
 1 files changed, 17 insertions(+), 13 deletions(-)
---
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index e1bc2ba..4891b53 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -2853,8 +2853,8 @@ update_node_ordering (GtkEntry *entry)
 {
   GtkEntryPrivate *priv = entry->priv;
   EntryIconInfo *icon_info;
-  GtkEntryIconPosition icon_pos;
-  GtkCssNode *sibling, *parent;
+  GtkEntryIconPosition first_icon_pos, second_icon_pos;
+  GtkCssNode *parent;
 
   if (priv->progress_widget)
     {
@@ -2864,21 +2864,25 @@ update_node_ordering (GtkEntry *entry)
     }
 
   if (gtk_widget_get_direction (GTK_WIDGET (entry)) == GTK_TEXT_DIR_RTL)
-    icon_pos = GTK_ENTRY_ICON_SECONDARY;
+    {
+      first_icon_pos = GTK_ENTRY_ICON_SECONDARY;
+      second_icon_pos = GTK_ENTRY_ICON_PRIMARY;
+    }
   else
-    icon_pos = GTK_ENTRY_ICON_PRIMARY;
+    {
+      first_icon_pos = GTK_ENTRY_ICON_PRIMARY;
+      second_icon_pos = GTK_ENTRY_ICON_SECONDARY;
+    }
 
-  icon_info = priv->icons[icon_pos];
+  parent = gtk_widget_get_css_node (GTK_WIDGET (entry));
+
+  icon_info = priv->icons[first_icon_pos];
   if (icon_info)
-    {
-      GtkCssNode *node;
+    gtk_css_node_insert_after (parent, gtk_widget_get_css_node (icon_info->widget), NULL);
 
-      node = gtk_widget_get_css_node (icon_info->widget);
-      parent = gtk_css_node_get_parent (node);
-      sibling = gtk_css_node_get_first_child (parent);
-      if (node != sibling)
-        gtk_css_node_insert_before (parent, node, sibling);
-    }
+  icon_info = priv->icons[second_icon_pos];
+  if (icon_info)
+    gtk_css_node_insert_before (parent, gtk_widget_get_css_node (icon_info->widget), NULL);
 }
 
 static EntryIconInfo*
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]