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

1  2 
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolStrip.cs

index 45f3ff801f15b4ca883f8ecda72e2c961100258f,35c7f80711b5c072804132f74ec43d596f696295..30c0d89f5fb40633ee7a05e3dc555e6408b74e67
@@@ -727,21 -727,19 +727,21 @@@ namespace System.Windows.Form
                {
                        if (!IsDisposed) {
  
 -                              // Event Handler must be stopped before disposing Items.
 -                              Events.Dispose();
 -
 -                              CloseToolTip (null);
 -                              // ToolStripItem.Dispose modifes the collection,
 -                              // so we iterate it in reverse order
 -                              for (int i = Items.Count - 1; i >= 0; i--)
 -                                      Items [i].Dispose ();
 -                                      
 -                              if (this.overflow_button != null && this.overflow_button.drop_down != null)
 -                                      this.overflow_button.drop_down.Dispose ();
 +                              if(disposing) {
 +                                      // Event Handler must be stopped before disposing Items.
 +                                      Events.Dispose();
 +
 +                                      CloseToolTip (null);
 +                                      // ToolStripItem.Dispose modifes the collection,
 +                                      // so we iterate it in reverse order
 +                                      for (int i = Items.Count - 1; i >= 0; i--)
 +                                              Items [i].Dispose ();
  
 -                              ToolStripManager.RemoveToolStrip (this);
 +                                      if (this.overflow_button != null && this.overflow_button.drop_down != null)
 +                                              this.overflow_button.drop_down.Dispose ();
 +
 +                                      ToolStripManager.RemoveToolStrip (this);
 +                              }
                                base.Dispose (disposing);
                        }
                }
                                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)
                        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)