surf-webkit1-keycodes-20170424-9ba143b.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
surf-webkit1-keycodes-20170424-9ba143b.diff (8155B)
---
1 diff --git a/config.def.h b/config.def.h
2 index 5996854..0b55189 100644
3 --- a/config.def.h
4 +++ b/config.def.h
5 @@ -83,51 +83,51 @@ static SiteStyle styles[] = {
6 * edit the CLEANMASK() macro.
7 */
8 static Key keys[] = {
9 - /* modifier keyval function arg Focus */
10 - { MODKEY|GDK_SHIFT_MASK,GDK_r, reload, { .b = TRUE } },
11 - { MODKEY, GDK_r, reload, { .b = FALSE } },
12 - { MODKEY|GDK_SHIFT_MASK,GDK_p, print, { 0 } },
13 -
14 - { MODKEY, GDK_p, clipboard, { .b = TRUE } },
15 - { MODKEY, GDK_y, clipboard, { .b = FALSE } },
16 -
17 - { MODKEY|GDK_SHIFT_MASK,GDK_j, zoom, { .i = -1 } },
18 - { MODKEY|GDK_SHIFT_MASK,GDK_k, zoom, { .i = +1 } },
19 - { MODKEY|GDK_SHIFT_MASK,GDK_q, zoom, { .i = 0 } },
20 - { MODKEY, GDK_minus, zoom, { .i = -1 } },
21 - { MODKEY, GDK_plus, zoom, { .i = +1 } },
22 -
23 - { MODKEY, GDK_l, navigate, { .i = +1 } },
24 - { MODKEY, GDK_h, navigate, { .i = -1 } },
25 -
26 - { MODKEY, GDK_j, scroll_v, { .i = +1 } },
27 - { MODKEY, GDK_k, scroll_v, { .i = -1 } },
28 - { MODKEY, GDK_b, scroll_v, { .i = -10000 } },
29 - { MODKEY, GDK_space, scroll_v, { .i = +10000 } },
30 - { MODKEY, GDK_i, scroll_h, { .i = +1 } },
31 - { MODKEY, GDK_u, scroll_h, { .i = -1 } },
32 -
33 - { 0, GDK_F11, fullscreen, { 0 } },
34 - { 0, GDK_Escape, stop, { 0 } },
35 - { MODKEY, GDK_o, source, { 0 } },
36 - { MODKEY|GDK_SHIFT_MASK,GDK_o, inspector, { 0 } },
37 -
38 - { MODKEY, GDK_g, spawn, SETPROP("_SURF_URI", "_SURF_GO") },
39 - { MODKEY, GDK_f, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") },
40 - { MODKEY, GDK_slash, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") },
41 -
42 - { MODKEY, GDK_n, find, { .b = TRUE } },
43 - { MODKEY|GDK_SHIFT_MASK,GDK_n, find, { .b = FALSE } },
44 -
45 - { MODKEY|GDK_SHIFT_MASK,GDK_c, toggle, { .v = "enable-caret-browsing" } },
46 - { MODKEY|GDK_SHIFT_MASK,GDK_i, toggle, { .v = "auto-load-images" } },
47 - { MODKEY|GDK_SHIFT_MASK,GDK_s, toggle, { .v = "enable-scripts" } },
48 - { MODKEY|GDK_SHIFT_MASK,GDK_v, toggle, { .v = "enable-plugins" } },
49 - { MODKEY|GDK_SHIFT_MASK,GDK_a, togglecookiepolicy, { 0 } },
50 - { MODKEY|GDK_SHIFT_MASK,GDK_m, togglestyle, { 0 } },
51 - { MODKEY|GDK_SHIFT_MASK,GDK_b, togglescrollbars, { 0 } },
52 - { MODKEY|GDK_SHIFT_MASK,GDK_g, togglegeolocation, { 0 } },
53 - { MODKEY|GDK_SHIFT_MASK,GDK_y, toggleproxy, { 0 } },
54 + /* modifier keyval function arg Focus */
55 + { MODKEY|GDK_SHIFT_MASK, 27, reload, { .b = TRUE } },
56 + { MODKEY, 27, reload, { .b = FALSE } },
57 + { MODKEY|GDK_SHIFT_MASK, 33, print, { 0 } },
58 +
59 + { MODKEY, 33, clipboard, { .b = TRUE } },
60 + { MODKEY, 29, clipboard, { .b = FALSE } },
61 +
62 + { MODKEY|GDK_SHIFT_MASK, 44, zoom, { .i = -1 } },
63 + { MODKEY|GDK_SHIFT_MASK, 45, zoom, { .i = +1 } },
64 + { MODKEY|GDK_SHIFT_MASK, 24, zoom, { .i = 0 } },
65 + { MODKEY, 20, zoom, { .i = -1 } },
66 + { MODKEY, 21, zoom, { .i = +1 } },
67 +
68 + { MODKEY, 46, navigate, { .i = +1 } },
69 + { MODKEY, 43, navigate, { .i = -1 } },
70 +
71 + { MODKEY, 44, scroll_v, { .i = +1 } },
72 + { MODKEY, 45, scroll_v, { .i = -1 } },
73 + { MODKEY, 56, scroll_v, { .i = -10000 } },
74 + { MODKEY, 65, scroll_v, { .i = +10000 } },
75 + { MODKEY, 31, scroll_h, { .i = +1 } },
76 + { MODKEY, 30, scroll_h, { .i = -1 } },
77 +
78 + { 0, 95, fullscreen, { 0 } },
79 + { 0, 9, stop, { 0 } },
80 + { MODKEY, 32, source, { 0 } },
81 + { MODKEY|GDK_SHIFT_MASK, 32, inspector, { 0 } },
82 +
83 + { MODKEY, 42, spawn, SETPROP("_SURF_URI", "_SURF_GO") },
84 + { MODKEY, 41, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") },
85 + { MODKEY, 61, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") },
86 +
87 + { MODKEY, 57, find, { .b = TRUE } },
88 + { MODKEY|GDK_SHIFT_MASK, 57, find, { .b = FALSE } },
89 +
90 + { MODKEY|GDK_SHIFT_MASK, 54, toggle, { .v = "enable-caret-browsing" } },
91 + { MODKEY|GDK_SHIFT_MASK, 31, toggle, { .v = "auto-load-images" } },
92 + { MODKEY|GDK_SHIFT_MASK, 39, toggle, { .v = "enable-scripts" } },
93 + { MODKEY|GDK_SHIFT_MASK, 55, toggle, { .v = "enable-plugins" } },
94 + { MODKEY|GDK_SHIFT_MASK, 38, togglecookiepolicy, { 0 } },
95 + { MODKEY|GDK_SHIFT_MASK, 58, togglestyle, { 0 } },
96 + { MODKEY|GDK_SHIFT_MASK, 56, togglescrollbars, { 0 } },
97 + { MODKEY|GDK_SHIFT_MASK, 42, togglegeolocation, { 0 } },
98 + { MODKEY|GDK_SHIFT_MASK, 29, toggleproxy, { 0 } },
99 };
100
101 /* button definitions */
102 diff --git a/surf.c b/surf.c
103 index d75e589..8c0ad10 100644
104 --- a/surf.c
105 +++ b/surf.c
106 @@ -67,7 +67,7 @@ typedef struct Client {
107
108 typedef struct {
109 guint mod;
110 - guint keyval;
111 + guint16 keycode;
112 void (*func)(Client *c, const Arg *arg);
113 const Arg arg;
114 } Key;
115 @@ -111,7 +111,6 @@ static int policysel = 0;
116 static char *stylefile = NULL;
117 static SoupCache *diskcache = NULL;
118
119 -static void addaccelgroup(Client *c);
120 static void beforerequest(WebKitWebView *w, WebKitWebFrame *f,
121 WebKitWebResource *r, WebKitNetworkRequest *req,
122 WebKitNetworkResponse *resp, Client *c);
123 @@ -171,8 +170,7 @@ static gboolean inspector_show(WebKitWebInspector *i, Client *c);
124 static gboolean inspector_close(WebKitWebInspector *i, Client *c);
125 static void inspector_finished(WebKitWebInspector *i, Client *c);
126
127 -static gboolean keypress(GtkAccelGroup *group, GObject *obj, guint key,
128 - GdkModifierType mods, Client *c);
129 +static gboolean keypress(GtkWidget *w, GdkEventKey *e, Client *c);
130 static void linkhover(WebKitWebView *v, const char* t, const char* l,
131 Client *c);
132 static void loadstatuschange(WebKitWebView *view, GParamSpec *pspec,
133 @@ -222,21 +220,6 @@ static void zoom(Client *c, const Arg *arg);
134 #include "config.h"
135
136 void
137 -addaccelgroup(Client *c)
138 -{
139 - int i;
140 - GtkAccelGroup *group = gtk_accel_group_new();
141 - GClosure *closure;
142 -
143 - for (i = 0; i < LENGTH(keys); i++) {
144 - closure = g_cclosure_new(G_CALLBACK(keypress), c, NULL);
145 - gtk_accel_group_connect(group, keys[i].keyval, keys[i].mod, 0,
146 - closure);
147 - }
148 - gtk_window_add_accel_group(GTK_WINDOW(c->win), group);
149 -}
150 -
151 -void
152 beforerequest(WebKitWebView *w, WebKitWebFrame *f, WebKitWebResource *r,
153 WebKitNetworkRequest *req, WebKitNetworkResponse *resp,
154 Client *c)
155 @@ -785,18 +768,15 @@ inspector_finished(WebKitWebInspector *i, Client *c)
156 }
157
158 gboolean
159 -keypress(GtkAccelGroup *group, GObject *obj, guint key, GdkModifierType mods,
160 - Client *c)
161 +keypress(GtkWidget *w, GdkEventKey *e, Client *c)
162 {
163 guint i;
164 gboolean processed = FALSE;
165
166 - mods = CLEANMASK(mods);
167 - key = gdk_keyval_to_lower(key);
168 updatewinid(c);
169 for (i = 0; i < LENGTH(keys); i++) {
170 - if (key == keys[i].keyval
171 - && mods == keys[i].mod
172 + if(e->hardware_keycode == keys[i].keycode
173 + && CLEANMASK(e->state) == keys[i].mod
174 && keys[i].func) {
175 keys[i].func(c, &(keys[i].arg));
176 processed = TRUE;
177 @@ -944,8 +924,11 @@ newclient(void)
178 "leave_notify_event",
179 G_CALLBACK(titlechangeleave), c);
180
181 - if (!kioskmode)
182 - addaccelgroup(c);
183 + if (!kioskmode) {
184 + g_signal_connect(G_OBJECT(c->win),
185 + "key-press-event",
186 + G_CALLBACK(keypress), c);
187 + }
188
189 /* Pane */
190 c->pane = gtk_vpaned_new();