62 lines
1.4 KiB
Diff
62 lines
1.4 KiB
Diff
diff -Naur surf-2.0/surf.c surf-2.0.patched/surf.c
|
|
--- surf-2.0/surf.c 2017-03-28 12:17:45.000000000 -0400
|
|
+++ surf-2.0.patched/surf.c 2017-06-25 01:23:41.445168316 -0400
|
|
@@ -174,6 +174,7 @@
|
|
static void cleanup(void);
|
|
|
|
/* GTK/WebKit */
|
|
+static GdkDevice *getkbdevice(void);
|
|
static WebKitWebView *newview(Client *c, WebKitWebView *rv);
|
|
static void initwebextensions(WebKitWebContext *wc, Client *c);
|
|
static GtkWidget *createview(WebKitWebView *v, WebKitNavigationAction *a,
|
|
@@ -263,7 +264,6 @@
|
|
void
|
|
setup(void)
|
|
{
|
|
- GdkDisplay *gdpy;
|
|
int i, j;
|
|
|
|
/* clean up any zombies immediately */
|
|
@@ -281,8 +281,6 @@
|
|
|
|
gtk_init(NULL, NULL);
|
|
|
|
- gdpy = gdk_display_get_default();
|
|
-
|
|
curconfig = defconfig;
|
|
|
|
/* dirs and files */
|
|
@@ -290,7 +288,7 @@
|
|
scriptfile = buildfile(scriptfile);
|
|
cachedir = buildpath(cachedir);
|
|
|
|
- gdkkb = gdk_seat_get_keyboard(gdk_display_get_default_seat(gdpy));
|
|
+ gdkkb = getkbdevice();
|
|
|
|
if (!stylefile) {
|
|
styledir = buildpath(styledir);
|
|
@@ -329,6 +327,23 @@
|
|
}
|
|
}
|
|
|
|
+static GdkDevice *
|
|
+getkbdevice(void)
|
|
+{
|
|
+ GList *l, *gdl = gdk_device_manager_list_devices(
|
|
+ gdk_display_get_device_manager(gdk_display_get_default()),
|
|
+ GDK_DEVICE_TYPE_MASTER);
|
|
+ GdkDevice *gd = NULL;
|
|
+
|
|
+ for (l = gdl; l != NULL; l = l->next)
|
|
+ if (gdk_device_get_source(l->data) == GDK_SOURCE_KEYBOARD)
|
|
+ gd = l->data;
|
|
+
|
|
+ g_list_free(gdl);
|
|
+ return gd;
|
|
+}
|
|
+
|
|
+
|
|
void
|
|
sigchld(int unused)
|
|
{
|