diff options
author | gotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2> | 2007-06-13 11:55:28 +0000 |
---|---|---|
committer | gotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2> | 2007-06-13 11:55:28 +0000 |
commit | ae6ef24bb00f12bb690153963734e8f1ec138a1c (patch) | |
tree | bb82dd4e0b5e9c208885e2b1cdc1ed210ff1c22c /main.c | |
parent | 2f8b7e260d6963668c3f26cc302adcf3fa0d1961 (diff) | |
download | dzen-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.c | 18 |
1 files changed, 14 insertions, 4 deletions
@@ -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); } |