So, for some reason we're trying to load tga files as icos on Ubuntu, but correctly loading as tga files on Windows? I notice that Pinta has it's own TGA exporter ported from Paint.Net, but relies on GDKPixBuf for importing. (GdkPixBuf only has TGA import, not export it seems.)
It has some ifdefs in the code, so if the Windows and Linux versions are compiled with different flags (One is compiled with GDK_PIXBUF_USE_GIO_MIME and the other isn't) that might account for that one detects our file as tga and the other as ico. But I'm not sure yet if GDK_PIXBUF_USE_GIO_MIME gives the right answer for us or not.
Either way, I think that this is either a bug in GDK, the flags used to compile GDK on major Linux distros, or possibly our TGA exporter if it sets some header that is only understood in a Windows context. (It s after all ported from a Windows product.)
Extremely strange, I went digging in the gdk-pixbuf source code again and only found that error in the loader for ICO files. ( http:// git.gnome. org/browse/ gdk-pixbuf/ tree/gdk- pixbuf/ io-ico. c#n354 ) I couldn't find it in the loader for TGA files.
So, for some reason we're trying to load tga files as icos on Ubuntu, but correctly loading as tga files on Windows? I notice that Pinta has it's own TGA exporter ported from Paint.Net, but relies on GDKPixBuf for importing. (GdkPixBuf only has TGA import, not export it seems.)
This is a possible theory: I think I found the GDK code that identifies the kind of file being loaded: http:// git.gnome. org/browse/ gdk-pixbuf/ tree/gdk- pixbuf/ gdk-pixbuf- io.c#n891
It has some ifdefs in the code, so if the Windows and Linux versions are compiled with different flags (One is compiled with GDK_PIXBUF_ USE_GIO_ MIME and the other isn't) that might account for that one detects our file as tga and the other as ico. But I'm not sure yet if GDK_PIXBUF_ USE_GIO_ MIME gives the right answer for us or not.
Either way, I think that this is either a bug in GDK, the flags used to compile GDK on major Linux distros, or possibly our TGA exporter if it sets some header that is only understood in a Windows context. (It s after all ported from a Windows product.)