dwm.c
changeset 1103 94af6c83cad2
parent 1102 239f5ee65766
child 1104 167446962e09
equal deleted inserted replaced
1102:239f5ee65766 1103:94af6c83cad2
   558 drawbar(View *v) {
   558 drawbar(View *v) {
   559 	int i, x;
   559 	int i, x;
   560 	Client *c;
   560 	Client *c;
   561 
   561 
   562 	dc.x = 0;
   562 	dc.x = 0;
   563 	for(c = stack; c && !isvisible(c); c = c->snext);
   563 	for(c = stack; c && (!isvisible(c) || getview(c) != v); c = c->snext);
   564 	for(i = 0; i < LENGTH(tags); i++) {
   564 	for(i = 0; i < LENGTH(tags); i++) {
   565 		dc.w = textw(tags[i]);
   565 		dc.w = textw(tags[i]);
   566 		if(seltags[i]) {
   566 		if(seltags[i] && seltags[i] == v->id) {
   567 			drawtext(v, tags[i], dc.sel, isurgent(i));
   567 			drawtext(v, tags[i], dc.sel, isurgent(i));
   568 			drawsquare(v, c && c->tags[i], isoccupied(i), isurgent(i), dc.sel);
   568 			drawsquare(v, c && c->tags[i], isoccupied(i), isurgent(i), dc.sel);
   569 		}
   569 		}
   570 		else {
   570 		else {
   571 			drawtext(v, tags[i], dc.norm, isurgent(i));
   571 			drawtext(v, tags[i], dc.norm, isurgent(i));
   722 	else
   722 	else
   723 		selview = viewat();
   723 		selview = viewat();
   724 	if(selview != v)
   724 	if(selview != v)
   725 		drawbar(v);
   725 		drawbar(v);
   726 	if(!c || (c && !isvisible(c)))
   726 	if(!c || (c && !isvisible(c)))
   727 		for(c = stack; c && !isvisible(c); c = c->snext);
   727 		for(c = stack; c && (!isvisible(c) || getview(c) != selview); c = c->snext);
   728 	if(sel && sel != c) {
   728 	if(sel && sel != c) {
   729 		grabbuttons(sel, False);
   729 		grabbuttons(sel, False);
   730 		XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]);
   730 		XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]);
   731 	}
   731 	}
   732 	if(c) {
   732 	if(c) {
  1154 	unsigned int mask;
  1154 	unsigned int mask;
  1155 
  1155 
  1156 	XQueryPointer(dpy, root, &win, &win, &x, &y, &i, &i, &mask);
  1156 	XQueryPointer(dpy, root, &win, &win, &x, &y, &i, &i, &mask);
  1157 	for(i = 0; i < nviews; i++) {
  1157 	for(i = 0; i < nviews; i++) {
  1158 		if((x >= views[i].x && x < views[i].x + views[i].w)
  1158 		if((x >= views[i].x && x < views[i].x + views[i].w)
  1159 		&& (y >= views[i].y && y < views[i].y + views[i].h)) {
  1159 		&& (y >= views[i].y && y < views[i].y + views[i].h))
  1160 			return &views[i];
  1160 			return &views[i];
  1161 		}
       
  1162 	}
  1161 	}
  1163 	return NULL;
  1162 	return NULL;
  1164 }
  1163 }
  1165 
  1164 
  1166 void
  1165 void
  1759 			if(i + 1 == n) /* remainder */
  1758 			if(i + 1 == n) /* remainder */
  1760 				nh = (v->way + v->wah) - ny - 2 * c->border;
  1759 				nh = (v->way + v->wah) - ny - 2 * c->border;
  1761 			else
  1760 			else
  1762 				nh = th - 2 * c->border;
  1761 				nh = th - 2 * c->border;
  1763 		}
  1762 		}
  1764 		fprintf(stderr, "tile %d %d %d %d\n", nx, ny, nw, nh);
       
  1765 		resize(c, nx, ny, nw, nh, RESIZEHINTS);
  1763 		resize(c, nx, ny, nw, nh, RESIZEHINTS);
  1766 		if((RESIZEHINTS) && ((c->h < bh) || (c->h > nh) || (c->w < bh) || (c->w > nw)))
  1764 		if((RESIZEHINTS) && ((c->h < bh) || (c->h > nh) || (c->w < bh) || (c->w > nw)))
  1767 			/* client doesn't accept size constraints */
  1765 			/* client doesn't accept size constraints */
  1768 			resize(c, nx, ny, nw, nh, False);
  1766 			resize(c, nx, ny, nw, nh, False);
  1769 		if(n > 1 && th != v->wah)
  1767 		if(n > 1 && th != v->wah)