It turns out that the copyright notice in the svg format icon is preventing the icon from being recognized as svg by gdk-pixbuf -- that's why it works when you load it by specifying a type, but can't just use gdk_pixbuf_new_from_file. Removing the copyright notice from /usr/share/icons/hicolor/scalable/apps/gdecrypt.svg with a text editor also makes gdecrypt work.
Nonetheless, as I said on that bug, the root of this issue is the way gdk detects whether a file is an svg image -- I believe it is looking for an <svg tag in the first few bytes of the file, and the long comment at the top breaks the format detection even though it's perfectly valid content in an svg file.
I did some checking into this in https:/ /bugs.launchpad .net/ubuntu/ +source/ gdk-pixbuf/ +bug/926019
It turns out that the copyright notice in the svg format icon is preventing the icon from being recognized as svg by gdk-pixbuf -- that's why it works when you load it by specifying a type, but can't just use gdk_pixbuf_ new_from_ file. Removing the copyright notice from /usr/share/ icons/hicolor/ scalable/ apps/gdecrypt. svg with a text editor also makes gdecrypt work.
Nonetheless, as I said on that bug, the root of this issue is the way gdk detects whether a file is an svg image -- I believe it is looking for an <svg tag in the first few bytes of the file, and the long comment at the top breaks the format detection even though it's perfectly valid content in an svg file.