anchor.diff:    uMouseDownSourceWidget: TfpgWidget; { widget Left MButton was pressed on }
   
   
  +type
  +  TfpgFormFriend = class(TfpgBaseForm)
  +  end;
  +
   function FindKeyboardFocus: TfpgWidget;
   begin
     Result := nil;
  
positive.code:   ss  := msg.params.keyboard.shiftstate;
    consumed := False;
  
    HandleKeyPress(key, ss, consumed);
    if not consumed then
    begin
      { work it's way to one before top level form - forms are not focusable remember }
      wg := Parent;
      wlast := wg;
      while (not consumed) and (wg <> nil) do
  
negative.code:       wlast := wg;
        wg := wg.Parent;
      end;
      wg := wlast;
    end;
  
  
    if not consumed then
    begin
      { Now let the top level form do keyboard shortcut processing. }
      if Assigned(wg) then
        wg.DoKeyShortcut(self, key, ss, consumed);
  
      { Forms aren't focusable, so Form.HandleKeyPress() will not suffice. Give
        the Form a chance to fire its OnKeyPress event. }
      if not consumed then
      begin
        if (wg is TfpgForm) and Assigned(TfpgForm(wg).OnKeyPress) then
          wg.OnKeyPress(self, key, ss, consumed);
      end;
  
      { now try the Application MainForm - if not the same as top-level form }
      if not consumed then
      begin
        { only do this if the top-level form is not Modal }
        if (wg is TfpgForm) and (TfpgForm(wg).WindowType <> wtModalForm) then
          if wg <> fpgApplication.MainForm then
            TfpgFormFriend(fpgApplication.MainForm).DoKeyShortcut(self, key, ss, consumed);
      end;
    end;
  
    { now finaly, lets give fpgApplication a chance }
    if (not consumed) and Assigned(fpgApplication.OnKeyPress) then
      fpgApplication.OnKeyPress(self, key, ss, consumed);
  end;
  
  procedure TfpgWidget.MsgKeyRelease(var msg: TfpgMessageRec);
  