surf-webkit1-keycodes-20170424-9ba143b.diff - sites - public wiki contents of s… | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
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 … | |
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_… | |
39 - { MODKEY, GDK_f, spawn, SETPROP("_SURF_… | |
40 - { MODKEY, GDK_slash, spawn, SETPROP("_SURF_… | |
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-… | |
46 - { MODKEY|GDK_SHIFT_MASK,GDK_i, toggle, { .v = "auto-lo… | |
47 - { MODKEY|GDK_SHIFT_MASK,GDK_s, toggle, { .v = "enable-… | |
48 - { MODKEY|GDK_SHIFT_MASK,GDK_v, toggle, { .v = "enable-… | |
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 Foc… | |
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_UR… | |
84 + { MODKEY, 41, spawn, SETPROP("_SURF_FI… | |
85 + { MODKEY, 61, spawn, SETPROP("_SURF_FI… | |
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-ca… | |
91 + { MODKEY|GDK_SHIFT_MASK, 31, toggle, { .v = "auto-load… | |
92 + { MODKEY|GDK_SHIFT_MASK, 39, toggle, { .v = "enable-sc… | |
93 + { MODKEY|GDK_SHIFT_MASK, 55, toggle, { .v = "enable-pl… | |
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 *r… | |
122 WebKitNetworkResponse *resp, Client *c); | |
123 @@ -171,8 +170,7 @@ static gboolean inspector_show(WebKitWebInspector *i… | |
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].… | |
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 *… | |
156 } | |
157 | |
158 gboolean | |
159 -keypress(GtkAccelGroup *group, GObject *obj, guint key, GdkModifierType… | |
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(); |