anchor.diff:  
       keyRight:
           begin
  +          writeln('DEBUG:  TfpgBaseTextEdit.KeyboardCaretNav >>>  keyRight');
  +          CaretPos.X := CaretPos.X + 1;
  +          if CaretPos.X > FMaxScrollH then
  +          begin
  +            FMaxScrollH := FMaxScrollH + 2;
  +            UpdateScrollBars;
  +          end;
  +//          if CaretPos.x <= pred(FLines.Count) then
  +//          begin
  +//            GliphY := (CaretPos.x - FTopLine) * FChrH;
  +//            DrawLine(Canvas, CaretPos.x, GliphY);
  +//          end;
  +          if ssShift in ShiftState then
  +          begin
  +            if not FSelected then
  +            begin
  +              FSelected := True;
  +              FSelStartNo := CaretPos.Y;
  +              FSelStartOffs := CaretPos.X - 1;
  +              if ssCtrl in ShiftState then
  +                CtrlKeyRightKey;
  +              FSelEndNo := CaretPos.Y;
  +              FSelEndOffs := CaretPos.X;
  +            end
  +            else
  +            begin
  +              if ssCtrl in ShiftState then
  +                CtrlKeyRightKey;
  +              FSelEndNo := CaretPos.Y;
  +              FSelEndOffs := CaretPos.X;
  +            end;
  +            FSelected := (FSelStartNo <> FSelEndNo) or (FSelStartOffs <> FSelEndOffs);
  +//            DrawVisible;
  +            Exit;
  +          end;
  +          if FSelected then
  +          begin
  +            FSelected := False;
  +//            DrawVisible;
  +//            DrawCaret(CaretPos.Y, CaretPos.X, True);
  +          end;
  +          if ssCtrl in ShiftState then
  +          begin
  +            CtrlKeyRightKey;
  +//            DrawVisible;
  +          end;
  +//          DrawCaret(CaretPos.Y, CaretPos.X, True);
  +          FSelStartNo := CaretPos.Y;
  +          FSelStartOffs := CaretPos.X;
           end;
   
       keyUp:
  
positive.code: uses
    fpg_dialogs{, fpg_constants}, fpg_stringutils, fpg_utils;
  
  { TfpgGutter }
  
  procedure TfpgGutter.SetDigits(const AValue: Integer);
  
negative.code:                 CtrlKeyLeftKey
                else
                  FSelEndOffs := CaretPos.X;
              end
              else
              begin
                FSelEndNo := CaretPos.Y;
                if ssCtrl in ShiftState then
  