diff options
author | Marius Ungureanu <marius.ungureanu@xamarin.com> | 2016-07-04 17:49:55 +0300 |
---|---|---|
committer | Marius Ungureanu <marius.ungureanu@xamarin.com> | 2016-07-04 19:05:15 +0300 |
commit | 4cf8d78fa4a6ed5c57f53b748812c7fe9f9e48a9 (patch) | |
tree | 0d88866bdb67837dc73473cfcd7ac57dffb6385e /main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking | |
parent | af76408b4380c0fcdb6d470c190513ce7dd17386 (diff) |
[Ide] Optimize DockContainer.ForAll
Get rid of the intermediate list that's used to collect the widgets to use the callback on. Shaves a few milliseconds on each ForAll call (pretty often)
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockContainer.cs | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockContainer.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockContainer.cs index 02d677b87b..a606782e93 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockContainer.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockContainer.cs @@ -171,21 +171,18 @@ namespace MonoDevelop.Components.Docking protected override void ForAll (bool include_internals, Gtk.Callback callback) { - List<Widget> widgets = new List<Widget> (); foreach (Widget w in notebooks) - widgets.Add (w); + callback (w); foreach (DockItem it in items) { if (it.HasWidget && it.Widget.Parent == this) { - widgets.Add (it.Widget); + callback (it.Widget); if (it.TitleTab.Parent == this) - widgets.Add (it.TitleTab); + callback (it.TitleTab); } } - foreach (var s in splitters.Where (w => w.Parent != null)) - widgets.Add (s); - - foreach (Widget w in widgets) - callback (w); + foreach (var s in splitters) + if (s.Parent != null) + callback (s); } protected override bool OnExposeEvent (Gdk.EventExpose evnt) |