diff --git a/thunar/thunar-launcher.c b/thunar/thunar-launcher.c index f479cf9..0da6a6a 100644 --- a/thunar/thunar-launcher.c +++ b/thunar/thunar-launcher.c @@ -546,6 +546,17 @@ thunar_launcher_execute_files (ThunarLauncher *launcher, +static guint +thunar_launcher_g_app_info_hash (const void *app_info) +{ + /* always return the same value to force g_app_info_equal() to be called */ + /* this is the absolute worst hash function, but necessary for correctness */ + /* see https://bugzilla.xfce.org/show_bug.cgi?id=7456 */ + return 0; +} + + + static void thunar_launcher_open_files (ThunarLauncher *launcher, GList *files) @@ -556,7 +567,7 @@ thunar_launcher_open_files (ThunarLauncher *launcher, GList *lp; /* allocate a hash table to associate applications to URIs */ - applications = g_hash_table_new_full (g_direct_hash, + applications = g_hash_table_new_full (thunar_launcher_g_app_info_hash, (GEqualFunc) g_app_info_equal, (GDestroyNotify) g_object_unref, (GDestroyNotify) thunar_g_file_list_free);