anchor.diff:    SparkButton _button;
     SparkOverlay _overlay;
     SparkMenu _menu;
  +
  +  /**
  +   * The state of the menu on `mouseDown`.
  +   */
     bool _mouseDownOpened;
   
     SparkMenuButton.created(): super.created();
  
positive.code:     assert(buttonCont.getDistributedNodes().isNotEmpty);
      _button = buttonCont.getDistributedNodes().first;
      _button
          ..onMouseDown.listen(_mouseDownHandler)
          ..onClick.listen(clickHandler)
          ..onFocus.listen(focusHandler)
          ..onBlur.listen(blurHandler);
  
negative.code:     }
    }
  
    /**
     * The menu state should be toggle on click.
     * Hovewer what is a single click the from user's perspective is a sequence
     * of DOM events: mouseDown, focus, mouseUp, click.
     * We force the menu open on `focus`, so we need to remember the [opened]
     * state on `mouseDown` into [_mouseDownOpened] and use in [clickHandler].
     */
    void mouseDownHandler(Event e) {
      _mouseDownOpened = opened;
    }
  
    /**
     * Toggles [opened] state depending on [_mouseDownOpened].
     */
    void clickHandler(Event e) => _toggle(!_mouseDownOpened);
  
    void focusHandler(Event e) => _toggle(true);
  