LCL-GTK3: Implement Button.OnClick handler. Fix Tab behavior. Issue #37718, patch from Anton Kavalenka.

git-svn-id: trunk@63874 -
This commit is contained in:
juha 2020-09-08 14:37:01 +00:00
parent 4c7fde32e9
commit 2f35763ff4

View File

@ -671,6 +671,7 @@ type
procedure SetMargin(AValue: Integer);
procedure SetSpacing(AValue: Integer);
protected
procedure ButtonClicked(pData:pointer);cdecl;
procedure SetImage(AImage:TBitmap);
function getText: String; override;
procedure setText(const AValue: String); override;
@ -2072,7 +2073,9 @@ begin
if AKeyPress and (ACharCode = VK_TAB) then
begin
if Sender^.is_focus then
Self.LCLObject.SelectNext(Self.LCLObject,true,true);
exit;
end;
IsArrowKey := ((ACharCode = VK_UP) or (ACharCode = VK_DOWN) or (ACharCode = VK_LEFT) or (ACharCode = VK_RIGHT));
@ -6515,6 +6518,12 @@ begin
end;
end;
procedure TGtk3Button.ButtonClicked(pData: pointer); cdecl;
begin
if TObject(pdata) is TButton then
TButton(pdata).Click;
end;
procedure TGtk3Button.SetImage(AImage: TBitmap);
begin
if Assigned(fImage) then
@ -6546,6 +6555,9 @@ begin
btn^.set_use_underline(true);
g_signal_connect_data(btn,'clicked',
TGCallback(@TGtk3Button.ButtonClicked), LCLObject, nil, 0);
FMargin := -1;
FLayout := GTK_POS_LEFT;
FSpacing := 2; // default gtk3 spacing is 2