diff --git a/catwm.c b/catwm.c index 87dbe53..6186546 100755 --- a/catwm.c +++ b/catwm.c @@ -287,13 +287,15 @@ void increase() { } void keypress(XEvent *e) { - int i; - XKeyEvent ke = e->xkey; - KeySym keysym = XKeycodeToKeysym(dis,ke.keycode,0); + unsigned int i; + //XKeyEvent ke = e->xkey; + int keysyms_per_keycode; + KeySym keysym = XGetKeyboardMapping(dis, (unsigned char)(e->xkey.keycode), 1, &keysyms_per_keycode)[0]; for(i=0;ixkey.state && keys[i].keysym == keysym ) { keys[i].function(keys[i].arg); + break; } } } @@ -614,18 +616,18 @@ void tile() { // If only one window if(head != NULL && head->next == NULL) { - XMoveResizeWindow(dis,head->win,0,0,sw-2,sh-2); + XMoveResizeWindow(dis,head->win,0,0,sw-2*BORDERW,sh-2*BORDERW); } else if(head != NULL) { switch(mode) { case 0: // Master window - XMoveResizeWindow(dis,head->win,0,0,master_size-2,sh-2); + XMoveResizeWindow(dis,head->win,0,0,master_size-2*BORDERW,sh-2*BORDERW); // Stack for(c=head->next;c;c=c->next) ++n; for(c=head->next;c;c=c->next) { - XMoveResizeWindow(dis,c->win,master_size,y,sw-master_size-2,(sh/n)-2); + XMoveResizeWindow(dis,c->win,master_size,y,sw-master_size-2*BORDERW,(sh/n)-2*BORDERW); y += sh/n; } break; diff --git a/config.h b/config.h index 3369dfe..cfe8d3a 100755 --- a/config.h +++ b/config.h @@ -40,6 +40,8 @@ #define FOCUS "rgb:bc/57/66" #define UNFOCUS "rgb:88/88/88" +#define BORDERW 4 + const char* dmenucmd[] = {"dmenu_run",NULL}; const char* urxvtcmd[] = {"urxvt",NULL}; const char* lockcmd[] = {"slock",NULL};