synedit: doublebuffering enabled only for gtk1

git-svn-id: trunk@12175 -
This commit is contained in:
mattias 2007-09-25 08:55:27 +00:00
parent d65866183a
commit 8a1732c539
4 changed files with 95 additions and 866 deletions

File diff suppressed because it is too large Load Diff

View File

@ -7,10 +7,25 @@
name=synedit
version=1.0.3
[prerules]
# LCL Platform
ifndef LCL_PLATFORM
ifneq ($(findstring $(OS_TARGET),win32 win64),)
LCL_PLATFORM=win32
else
ifeq ($(OS_TARGET),wince)
LCL_PLATFORM=wince
else
LCL_PLATFORM=gtk
endif
endif
endif
export LCL_PLATFORM
[compiler]
unittargetdir=units/$(CPU_TARGET)-$(OS_TARGET)
unitdir=../../lcl/units/$(CPU_TARGET)-$(OS_TARGET) .
options=-gl
options=-gl -dlcl$(LCL_PLATFORM)
[target]
units=allsyneditunits
@ -25,7 +40,7 @@ implicitunits=syntextdrawer syneditkeycmds synedittypes syneditstrconst \
[require]
# Adding lcl does not work, because it adds the source path.
#packages=lcl
packages=fcl regexpr
packages=regexpr
[default]
#lcldir=../../lcl
@ -43,3 +58,4 @@ cleartarget:
-$(DEL) $(COMPILER_UNITTARGETDIR)/allsyneditunits$(PPUEXT)
all: cleartarget $(COMPILER_UNITTARGETDIR) allsyneditunits$(PPUEXT)

View File

@ -46,8 +46,8 @@ unit SynEdit;
{$I synedit.inc}
{$IFDEF UseGTKDoubleBuf}
{$DEFINE DisableDoubleBuf}
{$IFDEF LCLGTK1}
{$DEFINE EnableDoubleBuf}
{$ENDIF}
interface
@ -674,7 +674,7 @@ type
protected
fGutterWidth: Integer;
fInternalImage: TSynInternalImage;
{$IFNDEF DisableDoubleBuf}
{$IFDEF EnableDoubleBuf}
BufferBitmap: TBitmap; // the double buffer
{$ENDIF}
SavedCanvas: TCanvas; // the normal TCustomControl canvas during paint
@ -4662,14 +4662,14 @@ end;
{$IFDEF SYN_LAZARUS}
procedure TCustomSynEdit.StartPaintBuffer(const ClipRect: TRect);
{$IFNDEF DisableDoubleBuf}
{$IFDEF EnableDoubleBuf}
var
NewBufferWidth: Integer;
NewBufferHeight: Integer;
{$ENDIF}
begin
if (SavedCanvas<>nil) then RaiseGDBException('');
{$IFNDEF DisableDoubleBuf}
{$IFDEF EnableDoubleBuf}
if BufferBitmap=nil then
BufferBitmap:=TBitmap.Create;
NewBufferWidth:=BufferBitmap.Width;
@ -4689,7 +4689,7 @@ end;
{$IFDEF SYN_LAZARUS}
procedure TCustomSynEdit.EndPaintBuffer(const ClipRect: TRect);
begin
{$IFNDEF DisableDoubleBuf}
{$IFDEF EnableDoubleBuf}
if (SavedCanvas=nil) then RaiseGDBException('');
if not (SavedCanvas is TControlCanvas) then RaiseGDBException('');
Canvas:=SavedCanvas;
@ -9993,7 +9993,7 @@ begin
DragAcceptFiles(Handle, FALSE);
{$ENDIF}
end;
{$IFNDEF DisableDoubleBuf}
{$IFDEF EnableDoubleBuf}
FreeAndNil(BufferBitmap);
{$ENDIF}
{$IFDEF SYN_LAZARUS}

View File

@ -818,8 +818,7 @@ begin
OldLink:=TPackageLink(ANode.Data);
FUserLinksSortID.Delete(ANode);
FUserLinksSortFile.Remove(OldLink);
if OldLink <> APackageID then
OldLink.Free;
OldLink.Free;
Modified:=true;
end;
// remove from global links
@ -827,11 +826,9 @@ begin
if ANode<>nil then begin
OldLink:=TPackageLink(ANode.Data);
FGlobalLinks.Delete(ANode);
if OldLink <> APackageID then
OldLink.Free;
OldLink.Free;
Modified:=true;
end;
APackageID.Free;
EndUpdate;
end;