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 *