Handle the case if desktop dir is outside of home dir.

That is possible in theory and we should not fail in that case.
Reset MIME type for invalid desktop entries to text/plain.

We should not try to launch invalid files if they have even no Type.