diff --git a/girara/session.c b/girara/session.c index d92da4f6d8603ac7aab418d73baeedf01a3d9c34..b2e01493770358584d6564f34ac3af7d04e6c8c8 100644 --- a/girara/session.c +++ b/girara/session.c @@ -887,25 +887,27 @@ girara_set_window_icon(girara_session_t* session, const char* name) return false; } - char* path = girara_fix_path(name); GtkWindow* window = GTK_WINDOW(session->gtk.window); + char* path = girara_fix_path(name); + bool success = true; - girara_debug("Loading window icon from file: %s", path); - GError* error = NULL; - gtk_window_set_icon_from_file(window, path, &error); - g_free(path); - - if (error == NULL) { - return true; - } + if (g_file_test(path, G_FILE_TEST_EXISTS) == TRUE) { + girara_debug("Loading window icon from file: %s", path); - girara_debug("Failed to load window icon (file): %s", error->message); - g_error_free(error); + GError* error = NULL; + success = gtk_window_set_icon_from_file(window, path, &error); - girara_debug("Loading window icon with name: %s", name); - gtk_window_set_icon_name(window, name); + if (success == false) { + girara_debug("Failed to load window icon (file): %s", error->message); + g_error_free(error); + } + } else { + girara_debug("Loading window icon with name: %s", name); + gtk_window_set_icon_name(window, name); + } - return true; + g_free(path); + return success; } girara_list_t*