I get last Lazarus trunk, it has many gtk3 fixes.
now I testd ATFlatControls with gtk3.
it shows bad icons on ATButton. icons from TPicture and from TImagelist.
code paints icon on control's Canvas. it is canvas on control, not bitmap.
demo: app/demo_buttons.
file atbuttons.pas:
procedure TATButton.PaintIcon(C: TCanvas; AX, AY: integer);
begin
if Assigned(FImages) and (FImageIndex>=0) and (FImageIndex<FImages.Count) then
FImages.Draw(C, AX, AY, FImageIndex)
else
if Assigned(FPicture) then
C.Draw(AX, AY, FPicture.Graphic);
end;