Преглед на файлове

2007-05-07 Jonathan Pobst <[email protected]>

	* ToolStrip.cs: Do not call BeginMerge on DropDowns.
	* ToolStripManager.cs: Call Merge on DropDowns.
	[Fixes bug #81477]

2007-05-07  Jonathan Pobst  <[email protected]>

	* ToolStripManagerTest.cs: Add test for bug #81477.

svn path=/trunk/mcs/; revision=76834
Jonathan Pobst преди 18 години
родител
ревизия
37e0944808

+ 6 - 0
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog

@@ -1,3 +1,9 @@
+2007-05-07  Jonathan Pobst  <[email protected]>
+
+	* ToolStrip.cs: Do not call BeginMerge on DropDowns.
+	* ToolStripManager.cs: Call Merge on DropDowns.
+	[Fixes bug #81477]
+
 2007-05-07  Rolf Bjarne Kvinge <[email protected]> 
 
 	* XplatUIWin32.cs: Changed Win32CreateWindow to take enums instead of

+ 0 - 4
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolStrip.cs

@@ -1512,10 +1512,6 @@ namespace System.Windows.Forms
 				foreach (ToolStripItem tsi in this.Items)
 					this.pre_merge_items.Add (tsi);
 				}
-				
-				if (this is MenuStrip)
-					foreach (ToolStripMenuItem tsmi in this.Items)
-						tsmi.DropDown.BeginMerge ();
 			}
 		}
 		

+ 1 - 2
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolStripManager.cs

@@ -305,8 +305,7 @@ namespace System.Windows.Forms
 									ToolStripMenuItem source = (ToolStripMenuItem)tsi;
 									ToolStripMenuItem target = (ToolStripMenuItem)target_tsi;
 									
-									while (source.DropDownItems.Count > 0)
-										ToolStrip.SetItemParent (source.DropDownItems[0], target.DropDown);
+									ToolStripManager.Merge (source.DropDown, target.DropDown);
 								}
 								
 								break;

+ 4 - 0
mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog

@@ -1,3 +1,7 @@
+2007-05-07  Jonathan Pobst  <[email protected]>
+
+	* ToolStripManagerTest.cs: Add test for bug #81477.
+
 2007-05-04  Jonathan Pobst  <[email protected]>
 
 	* ControlTest.cs: Expand GetChildAtPointTest to cover 2.0 cases.

+ 25 - 0
mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ToolStripManagerTest.cs

@@ -503,6 +503,31 @@ namespace MonoTests.System.Windows.Forms
 			Assert.AreEqual ("Open 2", tsmi2.DropDownItems[1].Text, "M12-4");
 		}
 
+		[Test]  // For bug #81477
+		public void MethodMergeRecursive ()
+		{
+			MenuStrip ms1 = new MenuStrip ();
+			MenuStrip ms2 = new MenuStrip ();
+
+			ToolStripMenuItem tsmi1 = (ToolStripMenuItem)ms1.Items.Add ("File");
+			ToolStripMenuItem tsmi2 = (ToolStripMenuItem)ms2.Items.Add ("File");
+
+			tsmi1.DropDownItems.Add ("New 1");
+			tsmi1.DropDownItems.Add ("Open 1");
+
+			tsmi2.DropDownItems.Add ("New 2");
+			tsmi2.DropDownItems.Add ("Open 2");
+			
+			tsmi2.DropDownItems[0].MergeAction = MergeAction.Insert;
+			tsmi2.DropDownItems[0].MergeIndex = 0;
+
+			tsmi2.MergeAction = MergeAction.MatchOnly;
+
+			ToolStripManager.Merge (ms2, ms1);
+
+			Assert.AreEqual ("New 2", tsmi1.DropDownItems[0].Text, "M13");
+		}
+		
 		[Test]
 		[ExpectedException (typeof (ArgumentNullException))]
 		public void MethodMergeANE1 ()