From 032bc217285401ec4953a17ca9bb93b6e8656a8a Mon Sep 17 00:00:00 2001 From: mattias Date: Sat, 17 Aug 2002 23:41:27 +0000 Subject: [PATCH] implemented showing source lines in breakpoints dialog git-svn-id: trunk@2531 - --- lcl/interfaces/gtk/gtkproc.inc | 7 +++++++ lcl/interfaces/gtk/gtkwinapi.inc | 26 +++++++++++++++++++------- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/lcl/interfaces/gtk/gtkproc.inc b/lcl/interfaces/gtk/gtkproc.inc index 6a385b96ec..58afa40462 100644 --- a/lcl/interfaces/gtk/gtkproc.inc +++ b/lcl/interfaces/gtk/gtkproc.inc @@ -1167,6 +1167,9 @@ begin ' ',TComponent(Target).Name,':',TObject(Target).ClassName, ' Message=',GetMessageName(TLMessage(AMessage).Msg)); {$ENDIF} + if (TLMessage(AMessage).Msg=LM_PAINT) + or (TLMessage(AMessage).Msg=LM_GtkPaint) then + CurrentSentPaintMessageTarget:=TObject(Target); if TObject(Target) is TControl then begin TControl(Target).WindowProc(TLMessage(AMessage)); @@ -1177,6 +1180,7 @@ begin end; Result := TLMessage(AMessage).Result; + CurrentSentPaintMessageTarget:=nil; end; {------------------------------------------------------------------------------ @@ -4087,6 +4091,9 @@ end; { ============================================================================= $Log$ + Revision 1.177 2003/06/03 08:02:33 mattias + implemented showing source lines in breakpoints dialog + Revision 1.176 2003/05/27 17:58:31 mattias fixed range checks diff --git a/lcl/interfaces/gtk/gtkwinapi.inc b/lcl/interfaces/gtk/gtkwinapi.inc index 2df8842a9e..3bd2ab04e7 100644 --- a/lcl/interfaces/gtk/gtkwinapi.inc +++ b/lcl/interfaces/gtk/gtkwinapi.inc @@ -5082,35 +5082,44 @@ function TGTKObject.InvalidateRect(aHandle : HWND; Rect : pRect; bErase : Boolean) : Boolean; var gdkRect : TGDKRectangle; - Widget: PGtkWidget; + Widget, PaintWidget: PGtkWidget; + LCLObject: TObject; {$IfDef Win32} AWindow: PGdkWindow; {$EndIf} begin // Writeln(format('Rect = %d,%d,%d,%d',[rect^.left,rect^.top,rect^.Right,rect^.Bottom])); + Widget:=PGtkWidget(aHandle); + LCLObject:=GetLCLObject(Widget); + if (LCLObject<>nil) and (LCLObject=CurrentSentPaintMessageTarget) then begin + writeln('NOTE: TGTKObject.InvalidateRect during paint message: ', + LCLObject.ClassName); + //RaiseException('Double paint'); + end; Result := True; gdkRect.X := Rect^.Left; gdkRect.Y := Rect^.Top; gdkRect.Width := (Rect^.Right - Rect^.Left); gdkRect.Height := (Rect^.Bottom - Rect^.Top); - Widget:=GetFixedWidget(PGtkWidget(aHandle)); - if Widget=nil then Widget:=PgtkWidget(aHandle); + PaintWidget:=GetFixedWidget(Widget); + if PaintWidget=nil then PaintWidget:=Widget; {$IfNDef Win32} if bErase then - gtk_widget_queue_clear_area(Widget, + gtk_widget_queue_clear_area(PaintWidget, gdkRect.X,gdkRect.Y,gdkRect.Width,gdkRect.Height); - gtk_widget_queue_draw_area(Widget, gdkRect.X,gdkRect.Y,gdkRect.Width,gdkRect.Height); + gtk_widget_queue_draw_area(PaintWidget, + gdkRect.X,gdkRect.Y,gdkRect.Width,gdkRect.Height); {$Else} if bErase then begin - AWindow:=GetControlWindow(Widget); + AWindow:=GetControlWindow(PaintWidget); if AWindow<>nil then gdk_window_clear_area(AWindow, gdkRect.X,gdkRect.Y,gdkRect.Width,gdkRect.Height); end; - gtk_widget_draw(Widget, @gdkRect); + gtk_widget_draw(PaintWidget, @gdkRect); {$EndIf} end; @@ -8084,6 +8093,9 @@ end; { ============================================================================= $Log$ + Revision 1.239 2003/06/03 08:02:33 mattias + implemented showing source lines in breakpoints dialog + Revision 1.238 2003/05/20 21:41:07 mattias started loading/saving breakpoints