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.
This commit is contained in:
Quentin Rameau 2017-02-12 18:50:31 +01:00
parent 1abb2ebe7a
commit 7e02344a61

15
surf.c
View File

@ -271,18 +271,20 @@ setup(void)
if (signal(SIGHUP, sighup) == SIG_ERR) if (signal(SIGHUP, sighup) == SIG_ERR)
die("Can't install SIGHUP handler"); die("Can't install SIGHUP handler");
gtk_init(NULL, NULL); if (!(dpy = XOpenDisplay(NULL)))
die("Can't open default display");
gdpy = gdk_display_get_default();
dpy = GDK_DISPLAY_XDISPLAY(gdpy);
curconfig = defconfig;
/* atoms */ /* atoms */
atoms[AtomFind] = XInternAtom(dpy, "_SURF_FIND", False); atoms[AtomFind] = XInternAtom(dpy, "_SURF_FIND", False);
atoms[AtomGo] = XInternAtom(dpy, "_SURF_GO", False); atoms[AtomGo] = XInternAtom(dpy, "_SURF_GO", False);
atoms[AtomUri] = XInternAtom(dpy, "_SURF_URI", False); atoms[AtomUri] = XInternAtom(dpy, "_SURF_URI", False);
gtk_init(NULL, NULL);
gdpy = gdk_display_get_default();
curconfig = defconfig;
/* dirs and files */ /* dirs and files */
cookiefile = buildfile(cookiefile); cookiefile = buildfile(cookiefile);
scriptfile = buildfile(scriptfile); scriptfile = buildfile(scriptfile);
@ -901,6 +903,7 @@ cleanup(void)
g_free(scriptfile); g_free(scriptfile);
g_free(stylefile); g_free(stylefile);
g_free(cachedir); g_free(cachedir);
XCloseDisplay(dpy);
} }
WebKitWebView * WebKitWebView *