tInstall Atoms before initializing gtk - surf - customized build of surf, the suckless webkit browser
 (HTM) git clone git://src.adamsgaard.dk/surf
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 7e02344a615a61246ccce1c7f770e88fbd57756e
 (DIR) parent 1abb2ebe7a90eea6e82415a07e0f2ea6e3475e5f
 (HTM) Author: Quentin Rameau <quinq@fifth.space>
       Date:   Sun, 12 Feb 2017 18:50:31 +0100
       
       Install Atoms before initializing gtk
       
       There a race condition in gtkplug/socket which is raised when setting
       Atoms.
       Use this workaround until
       https://bugzilla.gnome.org/show_bug.cgi?id=778680 is fixed.
       
       Diffstat:
         M surf.c                              |      15 +++++++++------
       
       1 file changed, 9 insertions(+), 6 deletions(-)
       ---
 (DIR) diff --git a/surf.c b/surf.c
       t@@ -271,18 +271,20 @@ setup(void)
                if (signal(SIGHUP, sighup) == SIG_ERR)
                        die("Can't install SIGHUP handler");
        
       -        gtk_init(NULL, NULL);
       -
       -        gdpy = gdk_display_get_default();
       -        dpy = GDK_DISPLAY_XDISPLAY(gdpy);
       -
       -        curconfig = defconfig;
       +        if (!(dpy = XOpenDisplay(NULL)))
       +                die("Can't open default display");
        
                /* atoms */
                atoms[AtomFind] = XInternAtom(dpy, "_SURF_FIND", False);
                atoms[AtomGo] = XInternAtom(dpy, "_SURF_GO", False);
                atoms[AtomUri] = XInternAtom(dpy, "_SURF_URI", False);
        
       +        gtk_init(NULL, NULL);
       +
       +        gdpy = gdk_display_get_default();
       +
       +        curconfig = defconfig;
       +
                /* dirs and files */
                cookiefile = buildfile(cookiefile);
                scriptfile = buildfile(scriptfile);
       t@@ -901,6 +903,7 @@ cleanup(void)
                g_free(scriptfile);
                g_free(stylefile);
                g_free(cachedir);
       +        XCloseDisplay(dpy);
        }
        
        WebKitWebView *