diff --git a/lcl/interfaces/gtk/gtkint.pp b/lcl/interfaces/gtk/gtkint.pp index caf11ee97c..12b558bc7f 100644 --- a/lcl/interfaces/gtk/gtkint.pp +++ b/lcl/interfaces/gtk/gtkint.pp @@ -276,6 +276,9 @@ type function DestroyTimer(TimerHandle: THandle) : boolean; override; procedure DestroyLCLComponent(Sender: TObject);virtual; + // for gtk controls not part of the LCL: + procedure FinishCreateHandle(const AWinControl: TWinControl; Widget: PGtkWidget; const AParams: TCreateParams); + {$I gtkwinapih.inc} {$I gtklclintfh.inc} diff --git a/lcl/interfaces/gtk/gtkwidgetset.inc b/lcl/interfaces/gtk/gtkwidgetset.inc index a5dedb372e..5a788b3c03 100644 --- a/lcl/interfaces/gtk/gtkwidgetset.inc +++ b/lcl/interfaces/gtk/gtkwidgetset.inc @@ -3748,6 +3748,29 @@ begin LastRight:=EmptyLastMouseClick; end; +procedure TGTKWidgetSet.FinishCreateHandle(const AWinControl: TWinControl; + Widget: PGtkWidget; const AParams: TCreateParams); +var + WidgetInfo: PWidgetInfo; + Allocation: TGTKAllocation; +begin + WidgetInfo := GetWidgetInfo(Widget,true); // Widget info already created in CreateAPIWidget + WidgetInfo^.LCLObject := AWinControl; + WidgetInfo^.Style := AParams.Style; + WidgetInfo^.ExStyle := AParams.ExStyle; + WidgetInfo^.WndProc := PtrUInt(AParams.WindowClass.lpfnWndProc); + + // set allocation + Allocation.X := AParams.X; + Allocation.Y := AParams.Y; + Allocation.Width := AParams.Width; + Allocation.Height := AParams.Height; + gtk_widget_size_allocate(Widget, @Allocation); + + Set_RC_Name(AWinControl, Widget); + TGtkWSWinControl.SetCallbacks(PGtkObject(Widget), AWinControl); +end; + procedure TGtkWidgetSet.DestroyConnectedWidget(Widget: PGtkWidget; CheckIfDestroying: boolean); var diff --git a/lcl/interfaces/gtk2/gtk2int.pas b/lcl/interfaces/gtk2/gtk2int.pas index 4f7f8e6e7c..15d78f2085 100644 --- a/lcl/interfaces/gtk2/gtk2int.pas +++ b/lcl/interfaces/gtk2/gtk2int.pas @@ -75,9 +75,6 @@ type function AppHandle: Thandle; override; - // for gtk controls not part of the LCL: - procedure FinishCreateHandle(const AWinControl: TWinControl; Widget: PGtkWidget; const AParams: TCreateParams); - {$I gtk2winapih.inc} {$I gtk2lclintfh.inc} end; diff --git a/lcl/interfaces/gtk2/gtk2widgetset.inc b/lcl/interfaces/gtk2/gtk2widgetset.inc index 585f9c64a0..73a66d3ba8 100644 --- a/lcl/interfaces/gtk2/gtk2widgetset.inc +++ b/lcl/interfaces/gtk2/gtk2widgetset.inc @@ -567,30 +567,6 @@ begin {$endif} end; -procedure TGtk2WidgetSet.FinishCreateHandle( - const AWinControl: TWinControl; Widget: PGtkWidget; - const AParams: TCreateParams); -var - WidgetInfo: PWidgetInfo; - Allocation: TGTKAllocation; -begin - WidgetInfo := GetWidgetInfo(Widget,true); // Widget info already created in CreateAPIWidget - WidgetInfo^.LCLObject := AWinControl; - WidgetInfo^.Style := AParams.Style; - WidgetInfo^.ExStyle := AParams.ExStyle; - WidgetInfo^.WndProc := PtrUInt(AParams.WindowClass.lpfnWndProc); - - // set allocation - Allocation.X := AParams.X; - Allocation.Y := AParams.Y; - Allocation.Width := AParams.Width; - Allocation.Height := AParams.Height; - gtk_widget_size_allocate(Widget, @Allocation); - - Set_RC_Name(AWinControl, Widget); - TGtkWSWinControl.SetCallbacks(PGtkObject(Widget), AWinControl); -end; - {$IFDEF ASSERT_IS_ON} {$UNDEF ASSERT_IS_ON} {$C-}