anchor.diff:      FCursorPos := cp;
       Repaint;
     end;
  +end;
  +
  +procedure TfpgCustomEdit.HandleDoubleClick(x, y: integer; button: word; shiftstate: TShiftState);
  +begin
  +  // button is always Mouse_Left, but lets leave this test here for good measure
  +  if button = MOUSE_LEFT then
  +    SelectAll
  +  else
  +    inherited;
   end;
   
   procedure TfpgCustomEdit.HandleMouseEnter;
  
positive.code:       keyRight:
          if FCursorPos < UTF8Length(FText) then
          begin
            Inc(FCursorPos);
  
            if (ssCtrl in shiftstate) then
  
negative.code:     procedure   HandleKeyPress(var keycode: word; var shiftstate: TShiftState; var consumed: boolean); override;
      procedure   HandleLMouseDown(x, y: integer; shiftstate: TShiftState); override;
      procedure   HandleMouseMove(x, y: integer; btnstate: word; shiftstate: TShiftState); override;
      procedure   HandleDoubleClick(x, y: integer; button: word; shiftstate: TShiftState); override;
      procedure   HandleMouseEnter; override;
      procedure   HandleMouseExit; override;
      function    GetDrawText: string;
  