From 125ffee4cb553f036563e1c7f63db08962b73cd9 Mon Sep 17 00:00:00 2001 From: mattias Date: Tue, 27 Jun 2006 22:49:57 +0000 Subject: [PATCH] gtk2 intf: enabled direct drawing, because it has working event area and double buffering git-svn-id: trunk@9507 - --- ide/main.pp | 1 - lcl/interfaces/gtk/gtkcallback.inc | 6 ++++++ lcl/interfaces/gtk/gtklclintf.inc | 2 +- lcl/interfaces/gtk/gtkproc.inc | 10 ++++++++++ lcl/interfaces/gtk/gtkproc.pp | 1 + lcl/tests/test4_1synedit.lpi | 3 +++ 6 files changed, 21 insertions(+), 2 deletions(-) diff --git a/ide/main.pp b/ide/main.pp index c62fdc1b54..a32a4017cd 100644 --- a/ide/main.pp +++ b/ide/main.pp @@ -3375,7 +3375,6 @@ var DlgResult: TModalResult; begin DlgResult:=ShowConfigureBuildLazarusDlg(MiscellaneousOptions.BuildLazOpts); - DebugLn(['TMainIDE.mnuToolConfigBuildLazClicked ',DlgResult]); if DlgResult in [mrOk,mrYes] then begin MiscellaneousOptions.Save; LazSrcTemplate:=CodeToolBoss.DefineTree.FindDefineTemplateByName( diff --git a/lcl/interfaces/gtk/gtkcallback.inc b/lcl/interfaces/gtk/gtkcallback.inc index 6603b8bf9e..935110db30 100644 --- a/lcl/interfaces/gtk/gtkcallback.inc +++ b/lcl/interfaces/gtk/gtkcallback.inc @@ -67,6 +67,10 @@ end; function DeliverGtkPaintMessage(Target: Pointer; Widget: PGtkWidget; Area: PGDKRectangle; RepaintAll: boolean): GBoolean; +{$IFDEF Gtk2} +// the gtk2 has a working double buffering and expose event area +{$DEFINE DirectPaintMsg} +{$ENDIF} var MSG: TLMGtkPaint; {$IFDEF DirectPaintMsg} @@ -462,6 +466,8 @@ begin {$ENDIF} end; + //DebugLn(['gtkExposeEventAfter ',GetWidgetDebugReport(Widget),' ',dbgGRect(@Event^.Area)]); + // the expose area is ok, but some gtk widgets repaints everything on expose // -> maximize the area DeliverGtkPaintMessage(Data,Widget,@Event^.Area,true); diff --git a/lcl/interfaces/gtk/gtklclintf.inc b/lcl/interfaces/gtk/gtklclintf.inc index e5131c9277..deeb9c6203 100644 --- a/lcl/interfaces/gtk/gtklclintf.inc +++ b/lcl/interfaces/gtk/gtklclintf.inc @@ -381,7 +381,7 @@ begin Widget:=GetStyleWidget(lgsVScale); MinWidth:=Widget^.requisition.width; end; - DebugLn(['TGtkWidgetSet.GetControlConstraints ',DbgSName(SizeConstraints.Control),' ',MinWidth,',',MinHeight]); + //DebugLn(['TGtkWidgetSet.GetControlConstraints ',DbgSName(SizeConstraints.Control),' ',MinWidth,',',MinHeight]); end; SizeConstraints.SetInterfaceConstraints(MinWidth,MinHeight, diff --git a/lcl/interfaces/gtk/gtkproc.inc b/lcl/interfaces/gtk/gtkproc.inc index a853ffdaae..b2ea625b28 100644 --- a/lcl/interfaces/gtk/gtkproc.inc +++ b/lcl/interfaces/gtk/gtkproc.inc @@ -519,6 +519,16 @@ begin {$EndIf} end; +function dbgGRect(const ARect: PGDKRectangle): string; +begin + if ARect=nil then begin + Result:='nil'; + end else begin + Result:='x='+dbgs(ARect^.x)+',y='+dbgs(ARect^.y) + +',w='+dbgs(ARect^.width)+',h='+dbgs(ARect^.height); + end; +end; + {------------------------------------------------------------------------------ procedure RaiseException(const Msg: string); diff --git a/lcl/interfaces/gtk/gtkproc.pp b/lcl/interfaces/gtk/gtkproc.pp index cc3cb8e689..594c46e38e 100644 --- a/lcl/interfaces/gtk/gtkproc.pp +++ b/lcl/interfaces/gtk/gtkproc.pp @@ -355,6 +355,7 @@ function GdkColorToStr(Color: PGDKColor): string; function GetWidgetStyleReport(Widget: PGtkWidget): string; procedure BeginGDKErrorTrap; procedure EndGDKErrorTrap; +function dbgGRect(const ARect: PGDKRectangle): string; overload; // gtk resources diff --git a/lcl/tests/test4_1synedit.lpi b/lcl/tests/test4_1synedit.lpi index c1fe72ce78..dc22cd172a 100644 --- a/lcl/tests/test4_1synedit.lpi +++ b/lcl/tests/test4_1synedit.lpi @@ -35,6 +35,9 @@ + + +