This is an automated email from the git hooks/post-receive script.

nomad pushed a commit to annotated tag 0.2.1
in repository apps/xfdashboard.

commit e1577076466618f886a1e519087cc96494e21695
Author: Stephan Haller <[email protected]>
Date:   Fri Jun 27 13:08:19 2014 +0200

    Clean up code of XfdashboardDynamicTableLayout
    
    Make nice-code(tm) of XfdashboardDynamicTableLayout ;)
---
 src/dynamic-table-layout.c |   29 +++++++++--------------------
 1 file changed, 9 insertions(+), 20 deletions(-)

diff --git a/src/dynamic-table-layout.c b/src/dynamic-table-layout.c
index a4b32bc..ba5963f 100644
--- a/src/dynamic-table-layout.c
+++ b/src/dynamic-table-layout.c
@@ -101,7 +101,6 @@ static void 
_xfdashboard_dynamic_table_layout_update_layout_data(XfdashboardDyna
 
        /* Freeze notification */
        g_object_freeze_notify(G_OBJECT(self));
-g_message("%s[begin]: size=%.2f x %.2f", __func__, inWidth, inHeight);
 
        /* Step one: Get number of visible child actors and determine largest 
width
         * and height of all visible child actors' natural size.
@@ -123,7 +122,6 @@ g_message("%s[begin]: size=%.2f x %.2f", __func__, inWidth, 
inHeight);
                        largestHeight=MAX(largestHeight, childHeight);
                }
        }
-g_message("%s: number-children=%d, largest=%.2f x %.2f", __func__, 
numberChildren, largestWidth, largestHeight);
 
        if(numberChildren!=priv->numberChildren)
        {
@@ -153,12 +151,17 @@ g_message("%s: number-children=%d, largest=%.2f x %.2f", 
__func__, numberChildre
                }
                else if(inHeight>0.0f)
                {
-                       // TODO: Take row spacing into account
-                       rows=floor(inHeight/largestHeight);
-                       rows=MIN(rows, priv->numberChildren);
+                       rows=MIN(ceil(inHeight/largestHeight), 
priv->numberChildren);
+                       do
+                       {
+                               
childHeight=(rows*largestHeight)+((rows-1)*priv->rowSpacing);
+                               rows--;
+                       }
+                       while(rows>1 && childHeight>inHeight);
+
+                       
largestHeight=floor(inHeight-((rows-1)*priv->rowSpacing))/rows;
                        columns=ceil((double)priv->numberChildren / 
(double)rows);
                }
-g_message("%s: columns=%d, rows=%d", __func__, columns, rows);
 
        if(rows!=priv->rows)
        {
@@ -189,7 +192,6 @@ g_message("%s: columns=%d, rows=%d", __func__, columns, 
rows);
                if(CLUTTER_ACTOR_IS_VISIBLE(child))
                {
                        g_array_append_val(priv->columnCoords, x);
-g_message("%s: Column %d=%.2f", __func__, i, x);
                        x+=(largestWidth+priv->columnSpacing);
 
                        /* Increase counter for visible children */
@@ -223,7 +225,6 @@ g_message("%s: Column %d=%.2f", __func__, i, x);
                        {
                                y+=largestHeight+priv->rowSpacing;
                                g_array_append_val(priv->rowCoords, y);
-g_message("%s: Row %d=%.2f", __func__, (i/priv->columns), y);
                                largestHeight=0.0f;
                        }
 
@@ -238,11 +239,9 @@ g_message("%s: Row %d=%.2f", __func__, (i/priv->columns), 
y);
 
        y+=largestHeight;
        g_array_append_val(priv->rowCoords, y);
-g_message("%s: Row[last] %d=%.2f", __func__, (i/priv->columns), y);
 
        /* Thaw notification */
        g_object_thaw_notify(G_OBJECT(self));
-g_message("%s[end]", __func__);
 }
 
 /* IMPLEMENTATION: ClutterLayoutManager */
@@ -263,8 +262,6 @@ static void 
_xfdashboard_dynamic_table_layout_get_preferred_width(ClutterLayoutM
 
        priv=XFDASHBOARD_DYNAMIC_TABLE_LAYOUT(self)->priv;
 
-g_message("%s[begin]: for-height=%.2f, column-spacing=%.2f", __func__, 
inForHeight, priv->columnSpacing);
-
        /* Set up default values */
        maxMinWidth=0.0f;
        maxNaturalWidth=0.0f;
@@ -286,7 +283,6 @@ g_message("%s[begin]: for-height=%.2f, 
column-spacing=%.2f", __func__, inForHeig
        /* Set return values */
        if(outMinWidth) *outMinWidth=maxMinWidth;
        if(outNaturalWidth) *outNaturalWidth=maxNaturalWidth;
-g_message("%s[end]: min-width=%.2f, natural-width=%.2f", __func__, 
maxMinWidth, maxNaturalWidth);
 }
 
 static void 
_xfdashboard_dynamic_table_layout_get_preferred_height(ClutterLayoutManager 
*self,
@@ -304,8 +300,6 @@ static void 
_xfdashboard_dynamic_table_layout_get_preferred_height(ClutterLayout
 
        priv=XFDASHBOARD_DYNAMIC_TABLE_LAYOUT(self)->priv;
 
-g_message("%s[begin]: for-width=%.2f, row-spacing=%.2f", __func__, inForWidth, 
priv->rowSpacing);
-
        /* Set up default values */
        maxMinHeight=0.0f;
        maxNaturalHeight=0.0f;
@@ -327,7 +321,6 @@ g_message("%s[begin]: for-width=%.2f, row-spacing=%.2f", 
__func__, inForWidth, p
        /* Set return values */
        if(outMinHeight) *outMinHeight=maxMinHeight;
        if(outNaturalHeight) *outNaturalHeight=maxNaturalHeight;
-g_message("%s[end]: min-height=%.2f, natural-height=%.2f", __func__, 
maxMinHeight, maxNaturalHeight);
 }
 
 /* Re-layout and allocate children of container we manage */
@@ -354,7 +347,6 @@ static void 
_xfdashboard_dynamic_table_layout_allocate(ClutterLayoutManager *sel
        /* Get size of container holding children to layout */
        width=clutter_actor_box_get_width(inAllocation);
        height=clutter_actor_box_get_height(inAllocation);
-g_message("%s[begin]: allocation=%.2f x %.2f", __func__, width, height);
 
        /* Update data needed for layout */
        
_xfdashboard_dynamic_table_layout_update_layout_data(XFDASHBOARD_DYNAMIC_TABLE_LAYOUT(self),
@@ -379,7 +371,6 @@ g_message("%s[begin]: allocation=%.2f x %.2f", __func__, 
width, height);
                        right=g_array_index(priv->columnCoords, gfloat, 
column+1)-priv->columnSpacing;
                        top=g_array_index(priv->rowCoords, gfloat, row);
                        bottom=g_array_index(priv->rowCoords, gfloat, 
row+1)-priv->rowSpacing;
-g_message("%s: column=%d, row=%d -> %.2f , %.2f [%.2f x %.2f]", __func__, 
column, row, left, top, right-left, bottom-top);
 
                        /* Get inner allocation for child */
                        clutter_actor_get_preferred_size(child, NULL, NULL, 
&childWidth, &childHeight);
@@ -401,8 +392,6 @@ g_message("%s: column=%d, row=%d -> %.2f , %.2f [%.2f x 
%.2f]", __func__, column
                        i++;
                }
        }
-
-g_message("%s[end]", __func__);
 }
 
 /* IMPLEMENTATION: GObject */

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.
_______________________________________________
Xfce4-commits mailing list
[email protected]
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to