aboutsummaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorgotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2007-06-13 11:55:28 +0000
committergotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2007-06-13 11:55:28 +0000
commitae6ef24bb00f12bb690153963734e8f1ec138a1c (patch)
treebb82dd4e0b5e9c208885e2b1cdc1ed210ff1c22c /main.c
parent2f8b7e260d6963668c3f26cc302adcf3fa0d1961 (diff)
downloaddzen-ae6ef24bb00f12bb690153963734e8f1ec138a1c.tar.gz
dzen-ae6ef24bb00f12bb690153963734e8f1ec138a1c.zip
added keyboard handling
added a_grabkeys, a_ungrabkeys, a_scrollend git-svn-id: http://dzen.googlecode.com/svn/trunk@84 f2baff5b-bf2c-0410-a398-912abdc3d8b2
Diffstat (limited to 'main.c')
-rw-r--r--main.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/main.c b/main.c
index e01955e..9f01edd 100644
--- a/main.c
+++ b/main.c
@@ -23,6 +23,7 @@
Dzen dzen = {0};
static int last_cnt = 0;
typedef void sigfunc(int);
+int isfocused = 0;
static void
@@ -99,7 +100,7 @@ chomp(char *inbuf, char *outbuf, int start, int len) {
}
while(off < len) {
if(inbuf[off] != '\n') {
- outbuf[i++] = inbuf[off++];
+ outbuf[i++] = inbuf[off++];
} else if(inbuf[off] == '\n') {
outbuf[i] = '\0';
return ++off;
@@ -283,7 +284,7 @@ x_create_windows(void) {
/* window attributes */
wa.override_redirect = 1;
wa.background_pixmap = ParentRelative;
- wa.event_mask = ExposureMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask;
+ wa.event_mask = ExposureMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask | KeyPressMask;
#ifdef DZEN_XINERAMA
queryscreeninfo(dzen.dpy, &si, dzen.xinescreen);
@@ -393,6 +394,8 @@ static void
handle_xev(void) {
XEvent ev;
int i;
+ char buf[32];
+ KeySym ksym;
XNextEvent(dzen.dpy, &ev);
switch(ev.type) {
@@ -457,6 +460,10 @@ handle_xev(void) {
break;
}
break;
+ case KeyPress:
+ XLookupString(&ev.xkey, buf, sizeof buf, &ksym, 0);
+ do_action(ksym+keymarker);
+ break;
}
}
@@ -668,9 +675,12 @@ main(int argc, char *argv[]) {
if(action_string)
fill_ev_table(action_string);
else {
- char edef[] = "entertitle=uncollapse;leaveslave=collapse;"
+ char edef[] = "entertitle=uncollapse,grabkeys;"
+ "enterslave=grabkeys;leaveslave=collapse,ungrabkeys;"
"button1=menuexec;button2=togglestick;button3=exit:13;"
- "button4=scrollup;button5=scrolldown";
+ "button4=scrollup;button5=scrolldown;"
+ "key_Up=scrollup;key_Left=scrollup;key_Down=scrolldown;key_Right=scrolldown;"
+ "key_q=ungrabkeys,exit";
fill_ev_table(edef);
}