Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-release-src > by-pkgid > 3e183e4fd40b3279b1b26283831d2967 > files > 2

hornsey-0.5-0.git20091030.2mdv2010.1.src.rpm

From 37c231288da5d743fea24fd6be8352681a6cefd4 Mon Sep 17 00:00:00 2001
From: iain <iain@linux.intel.com>
Date: Tue, 03 Nov 2009 16:33:53 +0000
Subject: Fix 7358 -  Scrollbar is missing if switch between album view and item view

When changing levels, count the number of items correctly
---
diff --git a/src/hrn-cluster.c b/src/hrn-cluster.c
index d13ce4f..2b68f87 100644
--- a/src/hrn-cluster.c
+++ b/src/hrn-cluster.c
@@ -564,7 +564,6 @@ tiler_set_expanded (HrnTiler *tiler,
             }
 
             priv->count += hrn_tileable_get_count ((HrnTileable *) child);
-
             iter = g_sequence_iter_next (iter);
             i++;
         }
@@ -595,6 +594,7 @@ tiler_set_expanded (HrnTiler *tiler,
         clutter_actor_set_reactive ((ClutterActor *) cluster, TRUE);
         hrn_tileable_item_count_changed ((HrnTileable *) cluster,
                                          priv->count, 1);
+        priv->count = 1;
 
         if (priv->items_exist == TRUE) {
             destroy_items (cluster);
@@ -797,7 +797,11 @@ tileable_get_count (HrnTileable *tileable)
     HrnClusterPrivate *priv = cluster->priv;
 
     if (priv->expanded) {
-        return priv->count + 1; /* + 1 for the up button */
+        if (priv->shown_child) {
+            return hrn_tileable_get_count (priv->shown_child);
+        } else {
+            return priv->count + 1;
+        }
     } else {
         return 1;
     }
@@ -1089,27 +1093,6 @@ child_activated_cb (HrnTileable      *tileable,
         hrn_tiler_set_expanded ((HrnTiler *) cluster, FALSE);
         hrn_tileable_activated ((HrnTileable *) cluster,
                                 HRN_TILEABLE_ACTION_SHOW_ALL, cluster);
-#if 0
-        iter = g_sequence_get_begin_iter (priv->node->children);
-        while (g_sequence_iter_is_end (iter) == FALSE) {
-            HrnClusterNode *child_node = g_sequence_get (iter);
-            ClutterActor *child;
-
-            child = g_hash_table_lookup (priv->child_items, child_node);
-            if (child == NULL) {
-                g_warning ("%s No child found for %s",
-                           G_STRLOC, child_node->name);
-                iter = g_sequence_iter_next (iter);
-                continue;
-            }
-
-            if (child_node != payload_node) {
-            }
-
-            show_child (cluster, child);
-            iter = g_sequence_iter_next (iter);
-        }
-#endif
 
         priv->shown_child = NULL;
         return;
diff --git a/src/hrn-view.c b/src/hrn-view.c
index 619be53..87e4264 100644
--- a/src/hrn-view.c
+++ b/src/hrn-view.c
@@ -826,7 +826,6 @@ child_activated (HrnTileable      *tileable,
     g_signal_emit (view, signals[ACTIVATED], 0, action, payload);
 }
 
-#if 0
 static void
 child_count_changed (HrnTileable *tileable,
                      int          old_count,
@@ -839,6 +838,7 @@ child_count_changed (HrnTileable *tileable,
     clutter_actor_queue_relayout ((ClutterActor *) view);
 }
 
+#if 0
 static guint
 layout_view (HrnView *view)
 {
@@ -1118,6 +1118,8 @@ add_child (HrnTiler       *tiler,
 
     g_signal_connect (actor, "activated",
                       G_CALLBACK (child_activated), view);
+    g_signal_connect (actor, "count-changed",
+                      G_CALLBACK (child_count_changed), view);
     g_signal_connect (actor, "visibility-changed",
                       G_CALLBACK (child_visibility_changed), view);
 
--
cgit v0.8.2