From 6e7b42111ff797dfff2957213f60b56e2cc6cfdf Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 1 Aug 2014 08:47:06 +0900 Subject: [PATCH] ecore_x - vsync nvidia/glx service fix so it connects 1st not 2nd time --- src/lib/ecore_x/xlib/ecore_x_vsync.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/lib/ecore_x/xlib/ecore_x_vsync.c b/src/lib/ecore_x/xlib/ecore_x_vsync.c index 24de7de5ac..aeaeb68667 100644 --- a/src/lib/ecore_x/xlib/ecore_x_vsync.c +++ b/src/lib/ecore_x/xlib/ecore_x_vsync.c @@ -398,7 +398,7 @@ _glvsync_animator_tick_source_set(void) { if (!vsync_server) { - char buf[4096], *disp, *s; + char buf[4096], run[4096], *disp, *s; int tries = 0; if (!handlers) @@ -417,15 +417,18 @@ _glvsync_animator_tick_source_set(void) if (*s == ':') *s = '='; } vsync_server = ecore_con_server_connect(ECORE_CON_LOCAL_USER, buf, 1, NULL); + if (!vsync_server) + { + snprintf(run, sizeof(run), "%s/ecore_x/bin/%s/ecore_x_vsync", + eina_prefix_lib_get(_prefix), MODULE_ARCH); + ecore_exe_run(run, NULL); + } while (!vsync_server) { tries++; if (tries > 50) return EINA_FALSE; - snprintf(buf, sizeof(buf), "%s/ecore_x/bin/%s/ecore_x_vsync", - eina_prefix_lib_get(_prefix), MODULE_ARCH); - ecore_exe_run(buf, NULL); usleep(10000); - vsync_server = ecore_con_server_connect(ECORE_CON_LOCAL_USER, buf, 0, NULL); + vsync_server = ecore_con_server_connect(ECORE_CON_LOCAL_USER, buf, 1, NULL); } if (!handlers) {