diff --git a/lcl/include/custompanel.inc b/lcl/include/custompanel.inc index a67809a9c3..92948df960 100644 --- a/lcl/include/custompanel.inc +++ b/lcl/include/custompanel.inc @@ -38,9 +38,8 @@ begin FBevelInner := bvNone; FBevelWidth := 1; FAlignment := taCenter; - Color:=clBtnface; + Color:=clBtnface;// clBackground; SetInitialBounds(0,0,170,50); -// Color := clBackground; ParentColor := True; end; diff --git a/lcl/include/statusbar.inc b/lcl/include/statusbar.inc index 35cd9d1fee..ee3fc54a15 100644 --- a/lcl/include/statusbar.inc +++ b/lcl/include/statusbar.inc @@ -127,7 +127,7 @@ begin end; //writeln('TStatusBar.UpdateHandleObject A FHandlePanelCount=',FHandlePanelCount,' PanelIndex=',PanelIndex,' Panels.Count=',Panels.Count,' ',SimplePanel); - if FHandlePanelCount>PanelIndex then begin + if (FHandlePanelCount>PanelIndex) and (PanelIndex>=0) then begin // update one panel StatusBarPanelUpdate(Self,PanelIndex); end else begin @@ -175,7 +175,7 @@ end; ------------------------------------------------------------------------------} procedure TStatusBar.InvalidatePanel(PanelIndex: integer; PanelParts: TPanelParts); -{$IFDEF OldtatusBar} +{$IFDEF OldStatusBar} var PanelRect, TextRect: TRect; {$ENDIF} diff --git a/lcl/interfaces/gtk/gtkcallback.inc b/lcl/interfaces/gtk/gtkcallback.inc index e15b18cfa2..24f54d9daa 100644 --- a/lcl/interfaces/gtk/gtkcallback.inc +++ b/lcl/interfaces/gtk/gtkcallback.inc @@ -29,7 +29,7 @@ begin else PaintMsg:=TLMPaint(TheMessage); Result := DeliverMessage(Target,PaintMsg) = 0; - ReleaseDC(0,PaintMsg.DC); + FinalizePaintMessage(@PaintMsg); end; {------------------------------------------------------------------------------- @@ -77,7 +77,7 @@ begin {$IFDEF DirectPaintMsg} PaintMsg:= GtkPaintMessageToPaintMessage(Msg,true); Result := DeliverMessage(Target,PaintMsg) = 0; - ReleaseDC(0,PaintMsg.DC); + FinalizePaintMessage(@PaintMsg); {$ELSE} Result:=DeliverPostMessage(Target,Msg); {$ENDIF} @@ -429,7 +429,7 @@ begin end else begin {$IFDEF VerboseDesignerDraw} writeln('gtkDrawAfter', - ' Widget=',HexStr(Cardinal(Widget),8), + ' Widget=',HexStr(Cardinal(Widget),8),'=',GetWidgetClassName(Widget), ' ',TComponent(Data).Name, ' ',area^.x,',',area^.y,',',area^.width,',',area^.height, ''); @@ -459,7 +459,7 @@ begin end else begin {$IFDEF VerboseDesignerDraw} writeln('gtkExposeAfter', - ' Widget=',HexStr(Cardinal(Widget),8), + ' Widget=',HexStr(Cardinal(Widget),8),'=',GetWidgetClassName(Widget), ' ',TComponent(Data).Name, ' ',Event^.area.x,',',Event^.area.y,',',Event^.area.width,',',Event^.area.height, ''); @@ -3227,6 +3227,9 @@ end; { ============================================================================= $Log$ + Revision 1.212 2004/01/13 10:41:40 mattias + fixed statusbar updating all panels + Revision 1.211 2004/01/09 20:03:13 mattias implemented new statusbar methods in gtk intf diff --git a/lcl/interfaces/gtk/gtkwinapi.inc b/lcl/interfaces/gtk/gtkwinapi.inc index a477b75d26..9e98151e90 100644 --- a/lcl/interfaces/gtk/gtkwinapi.inc +++ b/lcl/interfaces/gtk/gtkwinapi.inc @@ -127,6 +127,7 @@ var Widget: PGtkWidget; TargetObject: TObject; IsDoubleBuffered: Boolean; + PaintWidget: Pointer; {$ENDIF} begin {$IFDEF Gtk1} @@ -134,6 +135,17 @@ begin TargetObject:=GetParentLCLObject(Widget); IsDoubleBuffered:=(TargetObject is TWinControl) and TWinControl(TargetObject).DoubleBuffered; + // check if Handle is the paint widget of the LCL component + if IsDoubleBuffered then begin + PaintWidget:=GetFixedWidget(PGtkWidget(TWinControl(TargetObject).Handle)); + IsDoubleBuffered:=(PaintWidget=Widget); + //if not IsDoubleBuffered then begin + // writeln('TgtkObject.BeginPaint Not the paint widget: ', + // TWinControl(TargetObject).Name,':',TWinControl(TargetObject).ClassName, + // ' PaintWidget=',GetWidgetClassName(PaintWidget), + // ' Widget=',GetWidgetClassName(Widget)); + //end; + end; {$IFNDEF UseGTKDoubleBuf} IsDoubleBuffered:=false; {$ENDIF} @@ -9202,6 +9214,9 @@ end; { ============================================================================= $Log$ + Revision 1.316 2004/01/13 10:41:40 mattias + fixed statusbar updating all panels + Revision 1.315 2004/01/12 23:56:10 mattias improved double buffering, only one issue left: parent gdkwindow paint messages