| tInstall Atoms before initializing gtk - surf - customized build of surf, the s… | |
| git clone git://src.adamsgaard.dk/surf | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit 7e02344a615a61246ccce1c7f770e88fbd57756e | |
| parent 1abb2ebe7a90eea6e82415a07e0f2ea6e3475e5f | |
| Author: Quentin Rameau <[email protected]> | |
| 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(-) | |
| --- | |
| 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 * |