Browse Source

Fixed toggling child item visibility.

Lasse Öörni 15 years ago
parent
commit
05edd77856
1 changed files with 13 additions and 2 deletions
  1. 13 2
      Engine/UI/ListView.cpp

+ 13 - 2
Engine/UI/ListView.cpp

@@ -566,14 +566,25 @@ void ListView::toggleChildItemsVisible(unsigned index)
         return;
         return;
     
     
     int baseIndent = getItemIndent(getItem(index));
     int baseIndent = getItemIndent(getItem(index));
-    
+    bool firstChild = true;
+    UIElement* prevItem = 0;
     for (unsigned i = index + 1; i < numItems; ++i)
     for (unsigned i = index + 1; i < numItems; ++i)
     {
     {
         UIElement* item = getItem(i);
         UIElement* item = getItem(i);
         if (getItemIndent(item) > baseIndent)
         if (getItemIndent(item) > baseIndent)
-            item->setVisible(!item->isVisible());
+        {
+            if (firstChild)
+            {
+                item->setVisible(!item->isVisible());
+                firstChild = false;
+            }
+            else
+                item->setVisible(prevItem->isVisible());
+        }
         else
         else
             break;
             break;
+        
+        prevItem = item;
     }
     }
 }
 }