anchor.diff:  
     @HostListener('mouseover')
     void onMouseOver(MouseEvent event) {
  -    _isMouseDriven = true;
  +    // If not triggered by mouse movement, don't handle it. This can happen when
  +    // the DOM moved but mouse didn't.
  +    if (!_isMouseDriven) return;
   
       var item = _itemForTarget(event.target);
       if (item == null) return;
  
positive.code: 
    @HostListener('mouseout')
    void onMouseOut(MouseEvent event) {
      _isMouseDriven = false;
  
      MenuItem item = _itemForTarget(event.target);
      if (item == null) return;
  
negative.code:   bool _closeOnPressLeft = true;
  
    /// Whether the mouse is driving the selection.
    ///
    /// This is set to true when mouse moved and is reset to false when a keyboard
    /// event captured or roughly [_menuDelay] after the last mouse move event
    /// triggered.
    bool get isMouseDriven => _isMouseDriven;
    bool _isMouseDriven = false;
  
  