anchor.diff:      });
     }
   
  -  void _handleSearchQueryChanged(query) {
  +  void _handleSearchQueryChanged(String query) {
       setState(() {
         _searchQuery = query;
       });
     }
   
  -  void _handleMenuClick(_) {
  +  void _handleMenuShow(_) {
       setState(() {
         _menuController = new PopupMenuController();
         _menuController.open();
  +    });
  +  }
  +
  +  void _handleMenuHide(_) {
  +    setState(() {
  +      _menuController.close().then((_) {
  +        setState(() {
  +          _menuController = null;
  +        });
  +      });
       });
     }
   
  
positive.code: import 'package:sky/framework/components/input.dart';
  import 'package:sky/framework/components/menu_divider.dart';
  import 'package:sky/framework/components/menu_item.dart';
  import 'package:sky/framework/components/popup_menu.dart';
  import 'package:sky/framework/components/scaffold.dart';
  import 'package:sky/framework/debug/tracing.dart';
  
negative.code:       _searchBarStyle);
    }
  
    void addMenuToOverlays(List<Node> overlays) {
      if (_menuController == null)
        return;
      overlays.add(new ModalOverlay(
        children: [new StockMenu(controller: _menuController)],
        onDismiss: _handleMenuHide));
    }
  
    Node build() {
      List<Node> overlays = [];
      addMenuToOverlays(overlays);
  
      return new Scaffold(
        header: _isSearching ? buildSearchBar() : buildActionBar(),
  