From 12af15ea02c48d4c9100b79ff5e548cf310ad20d Mon Sep 17 00:00:00 2001
From: Kazunobu Kuriyama <kazunobu.kuriyama@gmail.com>
Date: Tue, 19 Jan 2016 15:34:26 +0900
Subject: [PATCH] Make GResource available when 'gvim -f'

Signed-off-by: Kazunobu Kuriyama <kazunobu.kuriyama@gmail.com>
---
 src/gui_gtk_x11.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 9967795..a5a8521 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -1437,9 +1437,7 @@ gui_mch_early_init_check(void)
 	EMSG(_((char *)e_opendisp));
 	return FAIL;
     }
-#ifdef USE_GRESOURCE
-    gui_gtk_register_resource();
-#endif
+
     return OK;
 }
 
@@ -1451,6 +1449,17 @@ gui_mch_early_init_check(void)
     int
 gui_mch_init_check(void)
 {
+#ifdef USE_GRESOURCE
+    static int res_registered = 0;
+    if (res_registered == 0)
+    {
+        /* Call this function in the GUI process; otherwise,
+         * the resources won't be available.
+         * Don't call it recursively; otherwise, vim hangs. */
+        gui_gtk_register_resource();
+        res_registered = 1;
+    }
+#endif
 #ifdef FEAT_GUI_GNOME
     if (gtk_socket_id == 0)
 	using_gnome = 1;
-- 
2.7.0

