dwm.c
changeset 1409 ed5530a91efe
parent 1408 2215f7f11dd9
child 1410 1bfaa3ddc995
equal deleted inserted replaced
1408:2215f7f11dd9 1409:ed5530a91efe
   373 	}
   373 	}
   374 }
   374 }
   375 
   375 
   376 void
   376 void
   377 attach(Client *c) {
   377 attach(Client *c) {
   378 	c->next = selmon->clients;
   378 	c->next = c->mon->clients;
   379 	selmon->clients = c;
   379 	c->mon->clients = c;
   380 }
   380 }
   381 
   381 
   382 void
   382 void
   383 attachstack(Client *c) {
   383 attachstack(Client *c) {
   384 	c->snext = selmon->stack;
   384 	c->snext = c->mon->stack;
   385 	selmon->stack = c;
   385 	c->mon->stack = c;
   386 }
   386 }
   387 
   387 
   388 void
   388 void
   389 buttonpress(XEvent *e) {
   389 buttonpress(XEvent *e) {
   390 	unsigned int i, x, click;
   390 	unsigned int i, x, click;
  1473 
  1473 
  1474 #ifdef XINERAMA
  1474 #ifdef XINERAMA
  1475 void
  1475 void
  1476 tagmon(const Arg *arg) {
  1476 tagmon(const Arg *arg) {
  1477 	unsigned int i;
  1477 	unsigned int i;
       
  1478 	Client *c;
  1478 	Monitor *m;
  1479 	Monitor *m;
  1479 
  1480 
       
  1481 	if(!(c = selmon->sel))
       
  1482 		return;
  1480 	for(i = 0, m = mons; m; m = m->next, i++)
  1483 	for(i = 0, m = mons; m; m = m->next, i++)
  1481 		if(i == arg->ui) {
  1484 		if(i == arg->ui) {
  1482 			selmon->sel->m = m;
  1485 			detach(c);
       
  1486 			detachstack(c);
       
  1487 			c->mon = m;
       
  1488 			attach(c);
       
  1489 			attachstack(c);
       
  1490 			selmon->sel = selmon->stack;
       
  1491 			m->sel = c;
  1483 			arrange();
  1492 			arrange();
  1484 			break;
  1493 			break;
  1485 		}
  1494 		}
  1486 }
  1495 }
  1487 #endif /* XINERAMA */
  1496 #endif /* XINERAMA */
  1693 		updatebarpos(m);
  1702 		updatebarpos(m);
  1694 		/* reassign all clients with same screen number */
  1703 		/* reassign all clients with same screen number */
  1695 		for(tm = mons; tm; tm = tm->next)
  1704 		for(tm = mons; tm; tm = tm->next)
  1696 			if(tm->screen_number == m->screen_number) {
  1705 			if(tm->screen_number == m->screen_number) {
  1697 				m->clients = tm->clients;
  1706 				m->clients = tm->clients;
  1698 				m->stack = tm->stack;
  1707 				m->sel = m->stack = tm->stack;
  1699 				tm->clients = NULL;
  1708 				tm->clients = NULL;
  1700 				tm->stack = NULL;
  1709 				tm->stack = NULL;
  1701 				for(c = m->clients; c; c = c->next)
  1710 				for(c = m->clients; c; c = c->next)
  1702 					c->mon = m;
  1711 					c->mon = m;
  1703 			}
  1712 			}
  1713 			tm->clients = c;
  1722 			tm->clients = c;
  1714 		}
  1723 		}
  1715 		while(tm->stack) {
  1724 		while(tm->stack) {
  1716 			c = tm->stack->snext;
  1725 			c = tm->stack->snext;
  1717 			tm->stack->snext = newmons->stack;
  1726 			tm->stack->snext = newmons->stack;
  1718 			newmons->stack = tm->stack;
  1727 			newmons->sel = newmons->stack = tm->stack;
  1719 			tm->stack = c;
  1728 			tm->stack = c;
  1720 		}
  1729 		}
  1721 	}
  1730 	}
  1722 
  1731 
  1723 	/* select focused monitor */
  1732 	/* select focused monitor */