view.c
changeset 533 a5567a0d3011
parent 532 651f2c868b31
child 535 13ef0d218c67
equal deleted inserted replaced
532:651f2c868b31 533:a5567a0d3011
    61 	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
    61 	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
    62 }
    62 }
    63 
    63 
    64 /* extern */
    64 /* extern */
    65 
    65 
    66 void (*arrange)(Arg *) = DEFMODE;
    66 void (*arrange)(void) = DEFMODE;
    67 
    67 
    68 void
    68 void
    69 detach(Client *c) {
    69 detach(Client *c) {
    70 	if(c->prev)
    70 	if(c->prev)
    71 		c->prev->next = c->next;
    71 		c->prev->next = c->next;
    75 		clients = c->next;
    75 		clients = c->next;
    76 	c->next = c->prev = NULL;
    76 	c->next = c->prev = NULL;
    77 }
    77 }
    78 
    78 
    79 void
    79 void
    80 dofloat(Arg *arg) {
    80 dofloat(void) {
    81 	Client *c;
    81 	Client *c;
    82 
    82 
    83 	for(c = clients; c; c = c->next) {
    83 	for(c = clients; c; c = c->next) {
    84 		if(isvisible(c)) {
    84 		if(isvisible(c)) {
    85 			resize(c, True, TopLeft);
    85 			resize(c, True, TopLeft);
    93 	}
    93 	}
    94 	restack();
    94 	restack();
    95 }
    95 }
    96 
    96 
    97 void
    97 void
    98 dotile(Arg *arg) {
    98 dotile(void) {
    99 	unsigned int i, n, mpx, stackw, stackh, th;
    99 	unsigned int i, n, mpx, stackw, stackh, th;
   100 	Client *c;
   100 	Client *c;
   101 
   101 
   102 	for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next))
   102 	for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next))
   103 		n++;
   103 		n++;
   208 	else {
   208 	else {
   209 		if(master - arg->i > 950 || master - arg->i < 50)
   209 		if(master - arg->i > 950 || master - arg->i < 50)
   210 			return;
   210 			return;
   211 		master -= arg->i;
   211 		master -= arg->i;
   212 	}
   212 	}
   213 	arrange(NULL);
   213 	arrange();
   214 }
   214 }
   215 
   215 
   216 void
   216 void
   217 restack(void) {
   217 restack(void) {
   218 	Client *c;
   218 	Client *c;
   245 
   245 
   246 void
   246 void
   247 togglemode(Arg *arg) {
   247 togglemode(Arg *arg) {
   248 	arrange = (arrange == dofloat) ? dotile : dofloat;
   248 	arrange = (arrange == dofloat) ? dotile : dofloat;
   249 	if(sel)
   249 	if(sel)
   250 		arrange(NULL);
   250 		arrange();
   251 	else
   251 	else
   252 		drawstatus();
   252 		drawstatus();
   253 }
   253 }
   254 
   254 
   255 void
   255 void
   259 	seltag[arg->i] = !seltag[arg->i];
   259 	seltag[arg->i] = !seltag[arg->i];
   260 	for(i = 0; i < ntags && !seltag[i]; i++);
   260 	for(i = 0; i < ntags && !seltag[i]; i++);
   261 	if(i == ntags)
   261 	if(i == ntags)
   262 		seltag[arg->i] = True; /* cannot toggle last view */
   262 		seltag[arg->i] = True; /* cannot toggle last view */
   263 	reorder();
   263 	reorder();
   264 	arrange(NULL);
   264 	arrange();
   265 }
   265 }
   266 
   266 
   267 void
   267 void
   268 view(Arg *arg) {
   268 view(Arg *arg) {
   269 	unsigned int i;
   269 	unsigned int i;
   270 
   270 
   271 	for(i = 0; i < ntags; i++)
   271 	for(i = 0; i < ntags; i++)
   272 		seltag[i] = False;
   272 		seltag[i] = False;
   273 	seltag[arg->i] = True;
   273 	seltag[arg->i] = True;
   274 	reorder();
   274 	reorder();
   275 	arrange(NULL);
   275 	arrange();
   276 }
   276 }
   277 
   277 
   278 void
   278 void
   279 viewall(Arg *arg) {
   279 viewall(Arg *arg) {
   280 	unsigned int i;
   280 	unsigned int i;
   281 
   281 
   282 	for(i = 0; i < ntags; i++)
   282 	for(i = 0; i < ntags; i++)
   283 		seltag[i] = True;
   283 		seltag[i] = True;
   284 	reorder();
   284 	reorder();
   285 	arrange(NULL);
   285 	arrange();
   286 }
   286 }
   287 
   287 
   288 void
   288 void
   289 zoom(Arg *arg) {
   289 zoom(Arg *arg) {
   290 	unsigned int n;
   290 	unsigned int n;
   308 	if(clients)
   308 	if(clients)
   309 		clients->prev = c;
   309 		clients->prev = c;
   310 	c->next = clients;
   310 	c->next = clients;
   311 	clients = c;
   311 	clients = c;
   312 	focus(c);
   312 	focus(c);
   313 	arrange(NULL);
   313 	arrange();
   314 }
   314 }