anchor.diff:  var
     s: string;
     i: integer;
  -begin
  -//  writeln(Classname, '.Keypress');
  +  mi: TfpgMenuItem;
  +begin
     s := KeycodeToText(keycode, shiftstate);
  -//  writeln('s: ', s);
  -  // handle MenuBar (Alt+?) shortcuts only - for now!
  +
  +  // handle MenuBar (Alt+?) shortcuts only
     if (length(s) = 5) and (copy(s, 1, 4) = 'Alt+') then
     begin
       s := KeycodeToText(keycode, []);
  
positive.code:     procedure   DrawRow(line: integer; const AItemFocused: boolean); virtual;
      function    ItemHeight(mi: TfpgMenuItem): integer; virtual;
      procedure   PrepareToShow;
    public
      OpenerPopup: TfpgPopupMenu;
      OpenerMenuBar: TfpgMenuBar;
  
negative.code:     if i <> -1 then
      begin
        consumed := True;
        FFocusItem := i;
        DoSelect;
      end;
    end;
  
    { now process sub-menus off the MenuBar }
    for i := 0 to ComponentCount-1 do
    begin
      if Components[i] is TfpgMenuItem then     { these are main menu items }
      begin
        mi := TfpgMenuItem(Components[i]);
        if mi.Visible and mi.Enabled then
        begin
          { process the sub menus }
          if mi.SubMenu <> nil then
            mi.SubMenu.DoKeyShortcut(nil, keycode, shiftstate, consumed);
          if consumed then
            Exit;
        end;
      end;
    end;
  
  end;
  
  procedure TfpgMenuBar.HandlePaint;
  