[hyena] [Hyena.Data.Gui] Dont' Arranage on UpdatePosition
- From: Gabriel Burt <gburt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [hyena] [Hyena.Data.Gui] Dont' Arranage on UpdatePosition
- Date: Wed, 17 Nov 2010 18:36:34 +0000 (UTC)
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]