event.c
changeset 143 36cabfe408cd
parent 139 22213b9a2114
child 144 e61447a7f249
equal deleted inserted replaced
142:9b9deafa0508 143:36cabfe408cd
     5 #include "dwm.h"
     5 #include "dwm.h"
     6 
     6 
     7 #include <stdlib.h>
     7 #include <stdlib.h>
     8 #include <X11/keysym.h>
     8 #include <X11/keysym.h>
     9 #include <X11/Xatom.h>
     9 #include <X11/Xatom.h>
    10 
       
    11 #define ButtonMask      (ButtonPressMask | ButtonReleaseMask)
       
    12 #define MouseMask       (ButtonMask | PointerMotionMask)
       
    13 
    10 
    14 /* CUSTOMIZE */
    11 /* CUSTOMIZE */
    15 
    12 
    16 typedef struct {
    13 typedef struct {
    17 	unsigned long mod;
    14 	unsigned long mod;
    18 	KeySym keysym;
    15 	KeySym keysym;
    19 	void (*func)(Arg *arg);
    16 	void (*func)(Arg *arg);
    20 	Arg arg;
    17 	Arg arg;
    21 } Key;
    18 } Key;
    22 
    19 
    23 /*
       
    24 const char *browse[] = { "firefox", NULL };
    20 const char *browse[] = { "firefox", NULL };
    25 const char *gimp[] = { "gimp", NULL };
    21 const char *gimp[] = { "gimp", NULL };
    26 */
    22 const char *term[] = { /*"xterm", NULL };*/
    27 const char *term[] = { "xterm", NULL };
       
    28 /*
       
    29 	"urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
    23 	"urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
    30 	"-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL
    24 	"-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL
    31 };
    25 };
    32 const char *xlock[] = { "xlock", NULL };
    26 const char *xlock[] = { "xlock", NULL };
    33 */
       
    34 
    27 
    35 static Key key[] = {
    28 static Key key[] = {
    36 	/* modifier		key		function	arguments */
    29 	/* modifier		key		function	arguments */
    37 	{ MODKEY,		XK_0,		view,		{ .i = Tfnord } }, 
    30 	{ MODKEY,		XK_0,		view,		{ .i = Tfnord } }, 
    38 	{ MODKEY,		XK_1,		view,		{ .i = Tdev } }, 
    31 	{ MODKEY,		XK_1,		view,		{ .i = Tdev } }, 
    55 	{ MODKEY|ShiftMask,	XK_3,		replacetag,	{ .i = Twork } }, 
    48 	{ MODKEY|ShiftMask,	XK_3,		replacetag,	{ .i = Twork } }, 
    56 	{ MODKEY|ShiftMask,	XK_4,		replacetag,	{ .i = Tmisc } }, 
    49 	{ MODKEY|ShiftMask,	XK_4,		replacetag,	{ .i = Tmisc } }, 
    57 	{ MODKEY|ShiftMask,	XK_c,		killclient,	{ 0 } }, 
    50 	{ MODKEY|ShiftMask,	XK_c,		killclient,	{ 0 } }, 
    58 	{ MODKEY|ShiftMask,	XK_q,		quit,		{ 0 } },
    51 	{ MODKEY|ShiftMask,	XK_q,		quit,		{ 0 } },
    59 	{ MODKEY|ShiftMask,	XK_Return,	spawn,		{ .argv = term } },
    52 	{ MODKEY|ShiftMask,	XK_Return,	spawn,		{ .argv = term } },
    60 	/*
       
    61 	{ MODKEY|ShiftMask,	XK_g,		spawn,		{ .argv = gimp } },
    53 	{ MODKEY|ShiftMask,	XK_g,		spawn,		{ .argv = gimp } },
    62 	{ MODKEY|ShiftMask,	XK_l,		spawn,		{ .argv = xlock } },
    54 	{ MODKEY|ShiftMask,	XK_l,		spawn,		{ .argv = xlock } },
    63 	{ MODKEY|ShiftMask,	XK_w,		spawn,		{ .argv = browse } },
    55 	{ MODKEY|ShiftMask,	XK_w,		spawn,		{ .argv = browse } },
    64 	*/
       
    65 };
    56 };
    66 
    57 
    67 /* END CUSTOMIZE */
    58 /* END CUSTOMIZE */
    68 
    59 
    69 /* static */
    60 /* static */
   170 			view(&a);
   161 			view(&a);
   171 			break;
   162 			break;
   172 		}
   163 		}
   173 	}
   164 	}
   174 	else if((c = getclient(ev->window))) {
   165 	else if((c = getclient(ev->window))) {
       
   166 		focus(c);
   175 		switch(ev->button) {
   167 		switch(ev->button) {
   176 		default:
   168 		default:
   177 			break;
   169 			break;
   178 		case Button1:
   170 		case Button1:
   179 			if(!c->ismax && (arrange == dofloat || c->isfloat)) {
   171 			if(!c->ismax && (arrange == dofloat || c->isfloat)) {
   245 enternotify(XEvent *e)
   237 enternotify(XEvent *e)
   246 {
   238 {
   247 	Client *c;
   239 	Client *c;
   248 	XCrossingEvent *ev = &e->xcrossing;
   240 	XCrossingEvent *ev = &e->xcrossing;
   249 
   241 
   250 	if(ev->mode != NotifyNormal || ev->detail == NotifyInferior)
   242 	if(ev->detail == NotifyInferior)
   251 		return;
   243 		return;
   252 
   244 
   253 	if((c = getclient(ev->window)))
   245 	if((c = getclient(ev->window)))
   254 		focus(c);
   246 		focus(c);
   255 	else if(ev->window == root)
   247 	else if(ev->window == root)