Use the index of the previous window to calculate the new stack index
authorAlberto Garcia <agarcia@igalia.com>
Thu, 18 Jun 2009 15:11:36 +0000 (17:11 +0200)
committerAlberto Garcia <agarcia@igalia.com>
Thu, 18 Jun 2009 15:43:25 +0000 (17:43 +0200)
* hildon/hildon-window-stack.c (_hildon_window_stack_do_push):
Use the index of the previous window rather than the stack length
to calculate the new index.

Fixes: NB#122389

ChangeLog
hildon/hildon-window-stack.c

index ac1be9e..bb67abc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-06-18  Alberto Garcia  <agarcia@igalia.com>
+
+       * hildon/hildon-window-stack.c (_hildon_window_stack_do_push):
+       Use the index of the previous window rather than the stack length
+       to calculate the new index.
+
+       Fixes: NB#122389
+
 2009-06-17  Alejandro Pinheiro <apinheiro@igalia.com>
 
        * hildon/hildon-date-selector.c
index f720818..a7a6182 100644 (file)
@@ -285,9 +285,14 @@ _hildon_window_stack_do_push                    (HildonWindowStack     *stack,
 
     if (current_stack == NULL) {
         GtkWidget *parent = hildon_window_stack_peek (stack);
+        gint pos = 0;
+
+        if (parent) {
+            pos = HILDON_STACKABLE_WINDOW_GET_PRIVATE (parent)->stack_position + 1;
+        }
 
         /* Push the window */
-        hildon_stackable_window_set_stack (win, stack, g_list_length (stack->priv->list));
+        hildon_stackable_window_set_stack (win, stack, pos);
         stack->priv->list = g_list_prepend (stack->priv->list, win);
 
         /* Make the window part of the same group as its parent */