Merge pull request #268 from pcc/menudeactivate
authorAlex Rønne Petersen <alex@lycus.org>
Mon, 21 Oct 2013 18:21:06 +0000 (11:21 -0700)
committerAlex Rønne Petersen <alex@lycus.org>
Mon, 21 Oct 2013 18:21:06 +0000 (11:21 -0700)
Cause MenuDeactivate event to be delivered when appropriate

mcs/class/Managed.Windows.Forms/System.Windows.Forms/MenuStrip.cs
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolStrip.cs
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolStripMenuItem.cs

index 8cad840c4eef4f16614d9aad46d2f59a2cf8512d..8470f2987b7dca8bf4c2793954444eb12f69eeed 100644 (file)
@@ -173,6 +173,8 @@ namespace System.Windows.Forms
                        this.MenuDroppedDown = false;
                        
                        base.Dismiss (reason);
+
+                       this.FireMenuDeactivate ();
                }
                
                internal void FireMenuActivate ()
index 45f3ff801f15b4ca883f8ecda72e2c961100258f..30c0d89f5fb40633ee7a05e3dc555e6408b74e67 100644 (file)
@@ -894,7 +894,7 @@ namespace System.Windows.Forms
                                if (this is MenuStrip && mouse_currently_over is ToolStripMenuItem && !(mouse_currently_over as ToolStripMenuItem).HasDropDownItems)
                                        return;
                        } else {
-                               this.HideMenus (true, ToolStripDropDownCloseReason.AppClicked);
+                               this.Dismiss (ToolStripDropDownCloseReason.AppClicked);
                        }
                        
                        if (this is MenuStrip)
@@ -1503,17 +1503,6 @@ namespace System.Windows.Forms
                        this.GetTopLevelToolStrip ().Dismiss (ToolStripDropDownCloseReason.ItemClicked);
                }
                
-               internal void HideMenus (bool release, ToolStripDropDownCloseReason reason)
-               {
-                       if (this is MenuStrip && release && menu_selected)
-                               (this as MenuStrip).FireMenuDeactivate ();
-                               
-                       if (release)
-                               menu_selected = false;
-                               
-                       NotifySelectedChanged (null);
-               }
-
                internal void NotifySelectedChanged (ToolStripItem tsi)
                {
                        foreach (ToolStripItem tsi2 in this.DisplayedItems)
index da16b149adca32f86790894574a3db73ba4d3548..4df33979088fc1fc0fcd884ff0a01ec3403f49a5 100644 (file)
@@ -315,12 +315,9 @@ namespace System.Windows.Forms
                protected override void OnMouseUp (MouseEventArgs e)
                {
                        if (this.close_on_mouse_release) {
-                               this.DropDown.Dismiss (ToolStripDropDownCloseReason.ItemClicked);
+                               this.Parent.Dismiss (ToolStripDropDownCloseReason.ItemClicked);
                                this.Invalidate ();
                                this.close_on_mouse_release = false;
-                               
-                               if (!this.IsOnDropDown && this.Parent is MenuStrip)
-                                       (this.Parent as MenuStrip).MenuDroppedDown = false;
                        }
                                
                        if (!this.HasDropDownItems && Enabled)