[Xfce4-commits] <ristretto:stephan/icon-bar> Make auto-center measurements fool-proof

Stephan Arts noreply at xfce.org
Sat Feb 4 12:32:06 CET 2012


Updating branch refs/heads/stephan/icon-bar
         to 5cafffaab3f0bc3dfb2879ff7f2aa72bd14998e1 (commit)
       from 505ff1fbea968e33cb82d36e56a0a8898e01902d (commit)

commit 5cafffaab3f0bc3dfb2879ff7f2aa72bd14998e1
Author: Stephan Arts <stephan at xfce.org>
Date:   Sat Feb 4 11:57:06 2012 +0100

    Make auto-center measurements fool-proof

 src/icon_bar.c |   76 +++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 59 insertions(+), 17 deletions(-)

diff --git a/src/icon_bar.c b/src/icon_bar.c
index 0d8f5fa..7bb2f3f 100644
--- a/src/icon_bar.c
+++ b/src/icon_bar.c
@@ -193,7 +193,7 @@ rstto_icon_bar_set_adjustments (
         GtkAdjustment *vadj);
 
 static void
-rstto_icon_bar_adjustment_changed (
+cb_rstto_icon_bar_adjustment_value_changed (
         GtkAdjustment *adjustment,
         RsttoIconBar  *icon_bar);
 
@@ -232,6 +232,16 @@ rstto_icon_bar_get_item_icon (
         RsttoIconBar     *icon_bar,
         RsttoIconBarItem *item);
 
+static void
+rstto_icon_bar_adjustment_changed (
+        RsttoIconBar  *icon_bar,
+        GtkAdjustment *adjustment);
+
+static void
+rstto_icon_bar_adjustment_value_changed (
+        RsttoIconBar  *icon_bar,
+        GtkAdjustment *adjustment);
+
 static RsttoIconBarItem *
 rstto_icon_bar_item_new (void);
 
@@ -851,13 +861,12 @@ rstto_icon_bar_size_allocate (
                 value = (gtk_adjustment_get_upper (icon_bar->priv->vadjustment)-page_size);
 
             gtk_adjustment_set_value (icon_bar->priv->vadjustment, value);
-            gtk_adjustment_changed (icon_bar->priv->vadjustment);
-            gtk_adjustment_changed (icon_bar->priv->hadjustment);
-            icon_bar->priv->auto_center = TRUE;
+            rstto_icon_bar_adjustment_changed (icon_bar, icon_bar->priv->vadjustment);
+            rstto_icon_bar_adjustment_changed (icon_bar, icon_bar->priv->hadjustment);
         }
         else
         {
-            gtk_adjustment_value_changed (icon_bar->priv->hadjustment);
+            rstto_icon_bar_adjustment_changed (icon_bar, icon_bar->priv->hadjustment);
         }
     }
     else
@@ -876,13 +885,12 @@ rstto_icon_bar_size_allocate (
                 value = (gtk_adjustment_get_upper (icon_bar->priv->hadjustment)-page_size);
 
             gtk_adjustment_set_value (icon_bar->priv->hadjustment, value);
-            gtk_adjustment_changed (icon_bar->priv->hadjustment);
-            gtk_adjustment_changed (icon_bar->priv->vadjustment);
-            icon_bar->priv->auto_center = TRUE;
+            rstto_icon_bar_adjustment_changed (icon_bar, icon_bar->priv->vadjustment);
+            rstto_icon_bar_adjustment_changed (icon_bar, icon_bar->priv->hadjustment);
         }
         else
         {
-            gtk_adjustment_value_changed (icon_bar->priv->vadjustment);
+            rstto_icon_bar_adjustment_changed (icon_bar, icon_bar->priv->vadjustment);
         }
     }
 }
@@ -1111,7 +1119,7 @@ rstto_icon_bar_set_adjustments (
         gtk_object_sink (GTK_OBJECT (icon_bar->priv->hadjustment));
 
         g_signal_connect (icon_bar->priv->hadjustment, "value_changed",
-                G_CALLBACK (rstto_icon_bar_adjustment_changed), icon_bar);
+                G_CALLBACK (cb_rstto_icon_bar_adjustment_value_changed), icon_bar);
         need_adjust = TRUE;
     }
 
@@ -1122,18 +1130,18 @@ rstto_icon_bar_set_adjustments (
         gtk_object_sink (GTK_OBJECT (icon_bar->priv->vadjustment));
 
         g_signal_connect (icon_bar->priv->vadjustment, "value_changed",
-                G_CALLBACK (rstto_icon_bar_adjustment_changed), icon_bar);
+                G_CALLBACK (cb_rstto_icon_bar_adjustment_value_changed), icon_bar);
         need_adjust = TRUE;
     }
 
     if (need_adjust)
-        rstto_icon_bar_adjustment_changed (NULL, icon_bar);
+        cb_rstto_icon_bar_adjustment_value_changed (NULL, icon_bar);
 }
 
 
 
 static void
-rstto_icon_bar_adjustment_changed (
+cb_rstto_icon_bar_adjustment_value_changed (
         GtkAdjustment *adjustment,
         RsttoIconBar  *icon_bar)
 {
@@ -2261,8 +2269,9 @@ rstto_icon_bar_show_active (RsttoIconBar *icon_bar)
             value = (gtk_adjustment_get_upper (icon_bar->priv->vadjustment)-page_size);
 
         gtk_adjustment_set_value (icon_bar->priv->vadjustment, value);
-        gtk_adjustment_value_changed (icon_bar->priv->vadjustment);
-        icon_bar->priv->auto_center = TRUE;
+        rstto_icon_bar_adjustment_value_changed (
+                icon_bar,
+                icon_bar->priv->vadjustment);
         return TRUE;
     }
     else
@@ -2274,9 +2283,42 @@ rstto_icon_bar_show_active (RsttoIconBar *icon_bar)
             value = (gtk_adjustment_get_upper (icon_bar->priv->hadjustment)-page_size);
 
         gtk_adjustment_set_value (icon_bar->priv->hadjustment, value);
-        gtk_adjustment_value_changed (icon_bar->priv->hadjustment);
-        icon_bar->priv->auto_center = TRUE;
+        rstto_icon_bar_adjustment_value_changed (
+                icon_bar,
+                icon_bar->priv->hadjustment);
         return TRUE;
     }
     return FALSE;
 }
+
+static void
+rstto_icon_bar_adjustment_changed (
+        RsttoIconBar  *icon_bar,
+        GtkAdjustment *adjustment)
+{
+    if (TRUE == icon_bar->priv->auto_center)
+    {
+        gtk_adjustment_changed (adjustment);
+        icon_bar->priv->auto_center = TRUE;
+    }
+    else
+    {
+        gtk_adjustment_changed (adjustment);
+    }
+}
+
+static void
+rstto_icon_bar_adjustment_value_changed (
+        RsttoIconBar  *icon_bar,
+        GtkAdjustment *adjustment)
+{
+    if (TRUE == icon_bar->priv->auto_center)
+    {
+        gtk_adjustment_value_changed (adjustment);
+        icon_bar->priv->auto_center = TRUE;
+    }
+    else
+    {
+        gtk_adjustment_value_changed (adjustment);
+    }
+}


More information about the Xfce4-commits mailing list