dwm.c
changeset 1151 8b2bff54fd0f
parent 1150 40b2b183073b
child 1152 960659820908
equal deleted inserted replaced
1150:40b2b183073b 1151:8b2bff54fd0f
   208 
   208 
   209 /* variables */
   209 /* variables */
   210 char stext[256], buf[256];
   210 char stext[256], buf[256];
   211 int screen, sx, sy, sw, sh;
   211 int screen, sx, sy, sw, sh;
   212 int (*xerrorxlib)(Display *, XErrorEvent *);
   212 int (*xerrorxlib)(Display *, XErrorEvent *);
   213 int bx, by, bw, bh, blw, mx, my, mw, mh, mox, moy, mow, moh, tx, ty, tw, th, wx, wy, ww, wh;
   213 int bx, by, bw, bh, blw, bgw, mx, my, mw, mh, mox, moy, mow, moh, tx, ty, tw, th, wx, wy, ww, wh;
   214 unsigned int numlockmask = 0;
   214 unsigned int numlockmask = 0;
   215 void (*handler[LASTEvent]) (XEvent *) = {
   215 void (*handler[LASTEvent]) (XEvent *) = {
   216 	[ButtonPress] = buttonpress,
   216 	[ButtonPress] = buttonpress,
   217 	[ConfigureRequest] = configurerequest,
   217 	[ConfigureRequest] = configurerequest,
   218 	[ConfigureNotify] = configurenotify,
   218 	[ConfigureNotify] = configurenotify,
   320 	unsigned int i, x;
   320 	unsigned int i, x;
   321 	Client *c;
   321 	Client *c;
   322 	XButtonPressedEvent *ev = &e->xbutton;
   322 	XButtonPressedEvent *ev = &e->xbutton;
   323 
   323 
   324 	if(ev->window == barwin) {
   324 	if(ev->window == barwin) {
   325 		x = 0;
   325 		x = bgw;
   326 		for(i = 0; i < LENGTH(tags); i++) {
   326 		for(i = 0; i < LENGTH(tags); i++) {
   327 			x += textw(tags[i]);
   327 			x += textw(tags[i]);
   328 			if(ev->x < x) {
   328 			if(ev->x > bgw && ev->x < x) {
   329 				if(ev->button == Button1) {
   329 				if(ev->button == Button1) {
   330 					if(ev->state & MODKEY)
   330 					if(ev->state & MODKEY)
   331 						tag(tags[i]);
   331 						tag(tags[i]);
   332 					else
   332 					else
   333 						view(tags[i]);
   333 						view(tags[i]);
   512 drawbar(void) {
   512 drawbar(void) {
   513 	int i, x;
   513 	int i, x;
   514 	Client *c;
   514 	Client *c;
   515 
   515 
   516 	dc.x = 0;
   516 	dc.x = 0;
       
   517 	dc.w = bgw;
       
   518 	drawtext(geom->symbol, dc.norm, False);
       
   519 	dc.x += bgw;
   517 	for(c = stack; c && !isvisible(c); c = c->snext);
   520 	for(c = stack; c && !isvisible(c); c = c->snext);
   518 	for(i = 0; i < LENGTH(tags); i++) {
   521 	for(i = 0; i < LENGTH(tags); i++) {
   519 		dc.w = textw(tags[i]);
   522 		dc.w = textw(tags[i]);
   520 		if(seltags[i]) {
   523 		if(seltags[i]) {
   521 			drawtext(tags[i], dc.sel, isurgent(i));
   524 			drawtext(tags[i], dc.sel, isurgent(i));
   852 
   855 
   853 unsigned int
   856 unsigned int
   854 idxoftag(const char *t) {
   857 idxoftag(const char *t) {
   855 	unsigned int i;
   858 	unsigned int i;
   856 
   859 
   857 	for(i = 0; (i < LENGTH(tags)) && (tags[i] != t); i++);
   860 	for(i = 0; (i < LENGTH(tags)) && strcmp(tags[i], t); i++);
   858 	return (i < LENGTH(tags)) ? i : 0;
   861 	return (i < LENGTH(tags)) ? i : 0;
   859 }
   862 }
   860 
   863 
   861 void
   864 void
   862 initfont(const char *fontstr) {
   865 initfont(const char *fontstr) {
  1499 	for(blw = i = 0; i < LENGTH(layouts); i++) {
  1502 	for(blw = i = 0; i < LENGTH(layouts); i++) {
  1500 		i = textw(layouts[i].symbol);
  1503 		i = textw(layouts[i].symbol);
  1501 		if(i > blw)
  1504 		if(i > blw)
  1502 			blw = i;
  1505 			blw = i;
  1503 	}
  1506 	}
       
  1507 	for(bgw = i = 0; i < LENGTH(geoms); i++) {
       
  1508 		i = textw(geoms[i].symbol);
       
  1509 		if(i > bgw)
       
  1510 			bgw = i;
       
  1511 	}
  1504 
  1512 
  1505 	wa.override_redirect = 1;
  1513 	wa.override_redirect = 1;
  1506 	wa.background_pixmap = ParentRelative;
  1514 	wa.background_pixmap = ParentRelative;
  1507 	wa.event_mask = ButtonPressMask|ExposureMask;
  1515 	wa.event_mask = ButtonPressMask|ExposureMask;
  1508 
  1516