[hyena] [Hyena.Data.Gui] Dont' Arranage on UpdatePosition



commit 10c8c5c5055559e436291a4a6433afb89c26c7f6
Author: Gabriel Burt <gabriel burt gmail com>
Date:   Wed Nov 17 12:34:51 2010 -0600

    [Hyena.Data.Gui] Dont' Arranage on UpdatePosition
    
    Doing so is not needed and very expensive.

 Hyena.Gui/Hyena.Data.Gui/DataViewLayout.cs     |    9 +++++++--
 Hyena.Gui/Hyena.Data.Gui/DataViewLayoutGrid.cs |    8 +++++---
 2 files changed, 12 insertions(+), 5 deletions(-)
---
diff --git a/Hyena.Gui/Hyena.Data.Gui/DataViewLayout.cs b/Hyena.Gui/Hyena.Data.Gui/DataViewLayout.cs
index 6a7cc1a..3f334a6 100644
--- a/Hyena.Gui/Hyena.Data.Gui/DataViewLayout.cs
+++ b/Hyena.Gui/Hyena.Data.Gui/DataViewLayout.cs
@@ -78,7 +78,7 @@ namespace Hyena.Data.Gui
         {
             XPosition = x;
             YPosition = y;
-            InvalidateChildLayout ();
+            InvalidateChildLayout (false);
         }
 
         public void ModelUpdated ()
@@ -111,7 +111,12 @@ namespace Hyena.Data.Gui
         protected abstract void InvalidateChildSize ();
         protected abstract void InvalidateVirtualSize ();
         protected abstract void InvalidateChildCollection ();
-        protected virtual void InvalidateChildLayout ()
+        protected void InvalidateChildLayout ()
+        {
+            InvalidateChildLayout (true);
+        }
+
+        protected virtual void InvalidateChildLayout (bool arrange)
         {
             model_indices.Clear ();
         }
diff --git a/Hyena.Gui/Hyena.Data.Gui/DataViewLayoutGrid.cs b/Hyena.Gui/Hyena.Data.Gui/DataViewLayoutGrid.cs
index ae56c8b..7870b8d 100644
--- a/Hyena.Gui/Hyena.Data.Gui/DataViewLayoutGrid.cs
+++ b/Hyena.Gui/Hyena.Data.Gui/DataViewLayoutGrid.cs
@@ -76,9 +76,9 @@ namespace Hyena.Data.Gui
             }
         }
 
-        protected override void InvalidateChildLayout ()
+        protected override void InvalidateChildLayout (bool arrange)
         {
-            base.InvalidateChildLayout ();
+            base.InvalidateChildLayout (arrange);
 
             if (ChildSize.Width <= 0 || ChildSize.Height <= 0) {
                 // FIXME: empty/reset all child slots here?
@@ -117,7 +117,9 @@ namespace Hyena.Data.Gui
                     child.Bind (Model.GetItem (i));
                 }
 
-                child.Arrange ();
+                if (arrange) {
+                    child.Arrange ();
+                }
 
                 // Update the allocation for the next child
                 if (++view_column_index % Columns == 0) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]