Author: lluis
Date: 2006-12-11 08:01:48 -0500 (Mon, 11 Dec 2006)
New Revision: 69317

Modified:
   trunk/monodevelop/Core/src/MonoDevelop.Core/ChangeLog
   
trunk/monodevelop/Core/src/MonoDevelop.Core/MonoDevelop.Core.AddIns/AddInService.cs
   trunk/monodevelop/Core/src/MonoDevelop.Core/MonoDevelop.Core.mdp
Log:
* MonoDevelop.Core.AddIns/AddInService.cs: In
  RegisterExtensionItemListener, avoid firing duplicate events by
  getting the list of tree items before registering the listener.
* MonoDevelop.Core.mdp: Updated.

Modified: trunk/monodevelop/Core/src/MonoDevelop.Core/ChangeLog
===================================================================
--- trunk/monodevelop/Core/src/MonoDevelop.Core/ChangeLog       2006-12-11 
12:48:20 UTC (rev 69316)
+++ trunk/monodevelop/Core/src/MonoDevelop.Core/ChangeLog       2006-12-11 
13:01:48 UTC (rev 69317)
@@ -1,3 +1,10 @@
+2006-12-11  Lluis Sanchez Gual <[EMAIL PROTECTED]> 
+
+       * MonoDevelop.Core.AddIns/AddInService.cs: In
+         RegisterExtensionItemListener, avoid firing duplicate events by
+         getting the list of tree items before registering the listener.
+       * MonoDevelop.Core.mdp: Updated.
+
 2006-09-12 Levi Bard  <[EMAIL PROTECTED]>
 
        * MonoDevelop.Core.AddIns/AddInService.cs: Added robustness for addin 
dir detection failure.

Modified: 
trunk/monodevelop/Core/src/MonoDevelop.Core/MonoDevelop.Core.AddIns/AddInService.cs
===================================================================
--- 
trunk/monodevelop/Core/src/MonoDevelop.Core/MonoDevelop.Core.AddIns/AddInService.cs
 2006-12-11 12:48:20 UTC (rev 69316)
+++ 
trunk/monodevelop/Core/src/MonoDevelop.Core/MonoDevelop.Core.AddIns/AddInService.cs
 2006-12-11 13:01:48 UTC (rev 69317)
@@ -322,14 +322,21 @@
                
                public void RegisterExtensionItemListener (string path, 
ExtensionItemListener listener, bool notifyCurrentNodes)
                {
+                       object[] items = null;
+                       
+                       // Get the items before registering the listener, to 
avoid firing duplicate events
+                       if (notifyCurrentNodes)
+                               items = GetTreeItems (path);
+                               
                        ArrayList list = (ArrayList) listeners [path];
                        if (list == null) {
                                list = new ArrayList ();
                                listeners [path] = list;
                        }
                        list.Add (listener);
+                       
                        if (notifyCurrentNodes) {
-                               foreach (object ob in GetTreeItems (path))
+                               foreach (object ob in items)
                                        listener (ExtensionAction.Add, ob);
                        }
                }

Modified: trunk/monodevelop/Core/src/MonoDevelop.Core/MonoDevelop.Core.mdp
===================================================================
--- trunk/monodevelop/Core/src/MonoDevelop.Core/MonoDevelop.Core.mdp    
2006-12-11 12:48:20 UTC (rev 69316)
+++ trunk/monodevelop/Core/src/MonoDevelop.Core/MonoDevelop.Core.mdp    
2006-12-11 13:01:48 UTC (rev 69317)
@@ -150,13 +150,13 @@
     <File name="./MonoDevelop.Core.addin.xml" subtype="Code" 
buildaction="FileCopy" />
   </Contents>
   <References>
-    <ProjectReference type="Assembly" localcopy="True" 
refto="../../../contrib/log4net" />
     <ProjectReference type="Assembly" localcopy="True" 
refto="../../../contrib/Mono.Cecil.dll" />
     <ProjectReference type="Gac" localcopy="True" refto="System, 
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
     <ProjectReference type="Gac" localcopy="True" refto="Mono.Posix, 
Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
     <ProjectReference type="Gac" localcopy="True" refto="System.Xml, 
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
     <ProjectReference type="Gac" localcopy="True" 
refto="System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089" />
     <ProjectReference type="Gac" localcopy="True" 
refto="ICSharpCode.SharpZipLib, Version=2.84.0.0, Culture=neutral, 
PublicKeyToken=1b03e6acf1164f73" />
+    <ProjectReference type="Assembly" localcopy="True" 
refto="../../../contrib/log4net.dll" />
   </References>
   <DeploymentInformation strategy="File">
     <excludeFiles />

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to