picoe / Eto

Cross platform GUI framework for desktop and mobile applications in .NET
Other
3.55k stars 323 forks source link

[GTK] Upgrade to GtkSharp 3.24.24.95 #2520

Closed cyanfish closed 8 months ago

cyanfish commented 1 year ago

Can the GtkSharp dependency be to the latest version (3.24.24.95) when feasible? It includes the fix to https://github.com/GtkSharp/GtkSharp/issues/393 (file choosers not working on linux-arm64) and I'm sure other issues as well.

cwensley commented 1 year ago

Yes absolutely... but also be aware that you can use the latest version of GtkSharp just by adding the package reference to your project explicitly.

cyanfish commented 1 year ago

Yeah, that works fine just using common Eto classes. Unfortunately referencing classes from Eto.Platform.Gtk gives errors like this: The type 'Pixbuf' is defined in an assembly that is not referenced. You must add a reference to assembly 'GdkSharp, Version=3.24.24.34, Culture=neutral, PublicKeyToken=null'.

There might be some way to fix it, and the cause is probably something to do with the GtkSharp build, but certainly changing it at the Eto level should resolve it.

cwensley commented 1 year ago

Interesting, that shouldn't be the case. It looks like GtkSharp re-added strong naming (it was previously attempted in 2020 which resulted in #1761) which breaks all compatibility when compiled with previous versions.

cwensley commented 1 year ago

@harry-cpp if strong naming is staying this time I'll update Eto's references and work on updating all the other controls. Any other existing assemblies will need to be recompiled for the new version.

cyanfish commented 1 year ago

For reference strong naming was added in https://github.com/GtkSharp/GtkSharp/pull/351

harry-cpp commented 1 year ago

Yea, it got added because peeps wanted a gtk workload for gtk version of maui, its staying on this time.