pinosaur
/
surf.git
/ commitdiff
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e784d92
)
Making more than one Modkey to work in keys.
author
Christoph Lohmann
<20h@r-36.net>
Sat, 26 Jan 2013 15:00:52 +0000
(16:00 +0100)
committer
Christoph Lohmann
<20h@r-36.net>
Sat, 26 Jan 2013 15:00:52 +0000
(16:00 +0100)
config.def.h
patch
|
blob
|
history
surf.c
patch
|
blob
|
history
diff --git
a/config.def.h
b/config.def.h
index
8a27a03
..
1cba4d7
100644
(file)
--- a/
config.def.h
+++ b/
config.def.h
@@
-45,6
+45,10
@@
static Bool hidebackground = FALSE;
#define MODKEY GDK_CONTROL_MASK
/* hotkeys */
#define MODKEY GDK_CONTROL_MASK
/* hotkeys */
+/*
+ * If you use anything else but MODKEY and GDK_SHIFT_MASK, don't forget to
+ * edit the CLEANMASK() macro.
+ */
static Key keys[] = {
/* modifier keyval function arg Focus */
{ MODKEY|GDK_SHIFT_MASK,GDK_r, reload, { .b = TRUE } },
static Key keys[] = {
/* modifier keyval function arg Focus */
{ MODKEY|GDK_SHIFT_MASK,GDK_r, reload, { .b = TRUE } },
diff --git
a/surf.c
b/surf.c
index
14788e5
..
682c1e2
100644
(file)
--- a/
surf.c
+++ b/
surf.c
@@
-28,6
+28,7
@@
char *argv0;
#define LENGTH(x) (sizeof x / sizeof x[0])
char *argv0;
#define LENGTH(x) (sizeof x / sizeof x[0])
+#define CLEANMASK(mask) (mask & (MODKEY|GDK_SHIFT_MASK))
#define COOKIEJAR_TYPE (cookiejar_get_type ())
#define COOKIEJAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), COOKIEJAR_TYPE, CookieJar))
#define COOKIEJAR_TYPE (cookiejar_get_type ())
#define COOKIEJAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), COOKIEJAR_TYPE, CookieJar))
@@
-543,7
+544,7
@@
keypress(GtkWidget* w, GdkEventKey *ev, Client *c) {
updatewinid(c);
for(i = 0; i < LENGTH(keys); i++) {
if(gdk_keyval_to_lower(ev->keyval) == keys[i].keyval
updatewinid(c);
for(i = 0; i < LENGTH(keys); i++) {
if(gdk_keyval_to_lower(ev->keyval) == keys[i].keyval
- &&
(ev->state & keys[i].mod
) == keys[i].mod
+ &&
CLEANMASK(ev->state
) == keys[i].mod
&& keys[i].func) {
keys[i].func(c, &(keys[i].arg));
processed = TRUE;
&& keys[i].func) {
keys[i].func(c, &(keys[i].arg));
processed = TRUE;