This is an automated email from the git hooks/post-receive script. a n d r e p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository xfce/xfdesktop.
commit 0887d5248f81fda701a3370e35788704c98f7efc Author: Andre Miranda <andre...@xfce.org> Date: Mon May 20 21:20:22 2019 -0300 Use async dbus proxy initialization (Bug #15418) This avoids xfdesktop hanging on startup waiting for a Thunar instance which may be started by dbus, or even worse, is not installed causing xfdesktop to hang until the synchronous calls timeout. --- src/xfdesktop-file-utils.c | 76 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 57 insertions(+), 19 deletions(-) diff --git a/src/xfdesktop-file-utils.c b/src/xfdesktop-file-utils.c index 7c66236..b6e4f40 100644 --- a/src/xfdesktop-file-utils.c +++ b/src/xfdesktop-file-utils.c @@ -67,6 +67,18 @@ static void xfdesktop_file_utils_add_emblems(GdkPixbuf *pix, GList *emblems); static XfdesktopTrash *xfdesktop_file_utils_peek_trash_proxy(void); static XfdesktopFileManager *xfdesktop_file_utils_peek_filemanager_proxy(void); +static void xfdesktop_file_utils_trash_proxy_new_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data); + +static void xfdesktop_file_utils_file_manager_proxy_new_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data); + +static void xfdesktop_file_utils_thunar_proxy_new_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data); + #ifdef HAVE_THUNARX static XfdesktopThunar *xfdesktop_file_utils_peek_thunar_proxy(void); #else @@ -1554,27 +1566,30 @@ xfdesktop_file_utils_dbus_init(void) } if(dbus_gconn) { - dbus_trash_proxy = xfdesktop_trash_proxy_new_sync(dbus_gconn, - G_DBUS_PROXY_FLAGS_NONE, - "org.xfce.FileManager", - "/org/xfce/FileManager", - NULL, - NULL); - - dbus_filemanager_proxy = xfdesktop_file_manager_proxy_new_sync(dbus_gconn, - G_DBUS_PROXY_FLAGS_NONE, - "org.xfce.FileManager", - "/org/xfce/FileManager", - NULL, - NULL); + xfdesktop_trash_proxy_new(dbus_gconn, + G_DBUS_PROXY_FLAGS_NONE, + "org.xfce.FileManager", + "/org/xfce/FileManager", + NULL, + xfdesktop_file_utils_trash_proxy_new_cb, + NULL); + + xfdesktop_file_manager_proxy_new(dbus_gconn, + G_DBUS_PROXY_FLAGS_NONE, + "org.xfce.FileManager", + "/org/xfce/FileManager", + NULL, + xfdesktop_file_utils_file_manager_proxy_new_cb, + NULL); #ifdef HAVE_THUNARX - dbus_thunar_proxy = xfdesktop_thunar_proxy_new_sync(dbus_gconn, - G_DBUS_PROXY_FLAGS_NONE, - "org.xfce.FileManager", - "/org/xfce/FileManager", - NULL, - NULL); + xfdesktop_thunar_proxy_new(dbus_gconn, + G_DBUS_PROXY_FLAGS_NONE, + "org.xfce.FileManager", + "/org/xfce/FileManager", + NULL, + xfdesktop_file_utils_thunar_proxy_new_cb, + NULL); #else dbus_thunar_proxy = NULL; #endif @@ -1613,6 +1628,29 @@ xfdesktop_file_utils_peek_thunar_proxy(void) } #endif +static void +xfdesktop_file_utils_trash_proxy_new_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) { + dbus_trash_proxy = xfdesktop_trash_proxy_new_finish (res, NULL); +} + +static void +xfdesktop_file_utils_file_manager_proxy_new_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) { + dbus_filemanager_proxy = xfdesktop_file_manager_proxy_new_finish (res, NULL); +} + +static void +xfdesktop_file_utils_thunar_proxy_new_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) { +#ifdef HAVE_THUNARX + dbus_thunar_proxy = xfdesktop_thunar_proxy_new_finish (res, NULL); +#endif +} + void xfdesktop_file_utils_dbus_cleanup(void) { -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits