From acb335d01bd1fe53d2878933730352373028dbac Mon Sep 17 00:00:00 2001 From: Scoopta Date: Thu, 22 Oct 2020 17:41:34 -0700 Subject: [PATCH] Moved to a synchronous based launch of desktop apps as async was causing mysterious hangs in GIO for some people --- modes/drun.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/modes/drun.c b/modes/drun.c index 30934cd..89b1119 100644 --- a/modes/drun.c +++ b/modes/drun.c @@ -373,21 +373,6 @@ struct widget* wofi_drun_get_widget(void) { return NULL; } -static void launch_done(GObject* obj, GAsyncResult* result, gpointer data) { - GError* err = NULL; - if(g_app_info_launch_uris_finish(G_APP_INFO(obj), result, &err)) { - exit(0); - } else if(err != NULL) { - char* cmd = data; - fprintf(stderr, "%s cannot be executed: %s\n", cmd, err->message); - g_error_free(err); - } else { - char* cmd = data; - fprintf(stderr, "%s cannot be executed\n", cmd); - } - exit(1); -} - static void set_dri_prime(GDesktopAppInfo* info) { bool dri_prime = g_desktop_app_info_get_boolean(info, "PrefersNonDefaultGPU"); if(dri_prime) { @@ -404,7 +389,7 @@ void wofi_drun_exec(const gchar* cmd) { exit(0); } else { set_dri_prime(info); - g_app_info_launch_uris_async(G_APP_INFO(info), NULL, NULL, NULL, launch_done, (gchar*) cmd); + g_app_info_launch_uris(G_APP_INFO(info), NULL, NULL, NULL); } } else if(strrchr(cmd, ' ') != NULL) { char* space = strrchr(cmd, ' '); @@ -418,13 +403,13 @@ void wofi_drun_exec(const gchar* cmd) { } else { set_dri_prime(info); g_desktop_app_info_launch_action(info, action, NULL); - utils_sleep_millis(500); } - exit(0); } else { fprintf(stderr, "%s cannot be executed\n", cmd); exit(1); } + utils_sleep_millis(100); + exit(0); } const char** wofi_drun_get_arg_names(void) {