anchor.diff:    public
       constructor Create; override;
       destructor  Destroy; override;
  -
  -  end;
  -
  -
  -  { TfpgWindowImpl }
  +  end;
  +
   
     TfpgWindowImpl = class(TfpgWindowBase)
     protected
  
positive.code: var
    aCapStyle: Longint;
  begin
    if awidth < 0 then begin
      { Alternative line drawing - Using X algorithm instead of hardware algorithm }
      awidth := -awidth;
      aCapStyle := CapNotLast;
      if (awidth > 1) and (astyle = lsSolid) then aCapStyle := CapButt;
      case AStyle of
        lsDot:
            begin
              XSetLineAttributes(xapplication.display, Fgc, 1,
                LineOnOffDash, aCapStyle, JoinMiter);
              XSetDashes(xapplication.display, Fgc, 0, cDot, 2);
            end;
        lsDash:
            begin
              XSetLineAttributes(xapplication.display, Fgc, 1,
                LineOnOffDash, aCapStyle, JoinMiter);
              XSetDashes(xapplication.display, Fgc, 0, cDash, 2);
            end;
        lsDashDot:
            begin
              XSetLineAttributes(xapplication.display, Fgc, 1,
                LineOnOffDash, aCapStyle, JoinMiter);
              XSetDashes(xapplication.display, Fgc, 0, cDashDot, 4);
            end;
        lsDashDotDot:
            begin
              XSetLineAttributes(xapplication.display, Fgc, 1,
                LineOnOffDash, aCapStyle, JoinMiter);
              XSetDashes(xapplication.display, Fgc, 0, cDashDotDot, 6);
            end;
        else  // which includes lsSolid
          XSetLineAttributes(xapplication.display, Fgc, awidth,
            LineSolid, aCapStyle, JoinMiter);
      end;  { case }
      end
    else begin
      awidth := 0;
      case AStyle of
        lsDot:
            begin
              XSetLineAttributes(xapplication.display, Fgc, 0,
                LineOnOffDash, CapNotLast, JoinMiter);
              XSetDashes(xapplication.display, Fgc, 0, cDot, 2);
            end;
        lsDash:
            begin
              XSetLineAttributes(xapplication.display, Fgc, 0,
                LineOnOffDash, CapNotLast, JoinMiter);
              XSetDashes(xapplication.display, Fgc, 0, cDash, 2);
            end;
        lsDashDot:
            begin
              XSetLineAttributes(xapplication.display, Fgc, 0,
                LineOnOffDash, CapNotLast, JoinMiter);
              XSetDashes(xapplication.display, Fgc, 0, cDashDot, 4);
            end;
        lsDashDotDot:
            begin
              XSetLineAttributes(xapplication.display, Fgc, 0,
                LineOnOffDash, CapNotLast, JoinMiter);
              XSetDashes(xapplication.display, Fgc, 0, cDashDotDot, 6);
            end;
        else  // which includes lsSolid
          XSetLineAttributes(xapplication.display, Fgc, awidth,
            LineSolid, CapNotLast, JoinMiter);
      end;  { case }
    end; { awidth >= 0 }
  end;
  
  procedure TfpgCanvasImpl.DoDrawString(x, y: TfpgCoord; const txt: string);
  
negative.code:     constructor Create;
    end;
  
  
    TfpgCanvasImpl = class(TfpgCanvasBase)
    private
  