diff --git a/lcl/interfaces/gtk3/gtk3widgets.pas b/lcl/interfaces/gtk3/gtk3widgets.pas index 849c6141d1..947f9f9e8f 100644 --- a/lcl/interfaces/gtk3/gtk3widgets.pas +++ b/lcl/interfaces/gtk3/gtk3widgets.pas @@ -634,6 +634,7 @@ type function CreateWidget(const Params: TCreateParams):PGtkWidget; override; public function IsWidgetOk: Boolean; override; + procedure SetDefault(const ADefault: Boolean); property Layout: Integer read getLayout write SetLayout; property Margin: Integer read getMargin write SetMargin; property Spacing: Integer read FSpacing write SetSpacing; @@ -5742,6 +5743,12 @@ begin Result := (FWidget <> nil) and Gtk3IsButton(FWidget); end; +procedure TGtk3Button.SetDefault(const ADefault: Boolean); +begin + if IsWidgetOk then + GetContainerWidget^.set_can_default(ADefault); +end; + { TGtk3ToggleButton } procedure Gtk3Toggled(AWidget: PGtkToggleButton; AData: gPointer); cdecl; var diff --git a/lcl/interfaces/gtk3/gtk3wsstdctrls.pp b/lcl/interfaces/gtk3/gtk3wsstdctrls.pp index 4453faea4d..5ace11c717 100644 --- a/lcl/interfaces/gtk3/gtk3wsstdctrls.pp +++ b/lcl/interfaces/gtk3/gtk3wsstdctrls.pp @@ -1045,7 +1045,9 @@ end; class procedure TGtk3WSButton.SetDefault(const AButton: TCustomButton; ADefault: Boolean); begin - //TODO: + if not WSCheckHandleAllocated(AButton, 'SetDefault') then + Exit; + TGtk3Button(AButton.Handle).SetDefault(ADefault); end; class procedure TGtk3WSButton.SetShortCut(const AButton: TCustomButton;