equal
deleted
inserted
replaced
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 if((ev->x < bgw) && ev->button == Button1) { |
|
326 setgeom(NULL); |
|
327 return; |
|
328 } |
325 x = bgw; |
329 x = bgw; |
326 for(i = 0; i < LENGTH(tags); i++) { |
330 for(i = 0; i < LENGTH(tags); i++) { |
327 x += textw(tags[i]); |
331 x += textw(tags[i]); |
328 if(ev->x > bgw && ev->x < x) { |
332 if(ev->x > bgw && ev->x < x) { |
329 if(ev->button == Button1) { |
333 if(ev->button == Button1) { |
339 toggleview(tags[i]); |
343 toggleview(tags[i]); |
340 } |
344 } |
341 return; |
345 return; |
342 } |
346 } |
343 } |
347 } |
|
348 if((ev->x < x + blw) && ev->button == Button1) |
|
349 setlayout(NULL); |
344 } |
350 } |
345 else if((c = getclient(ev->window))) { |
351 else if((c = getclient(ev->window))) { |
346 focus(c); |
352 focus(c); |
347 if(CLEANMASK(ev->state) != MODKEY) |
353 if(CLEANMASK(ev->state) != MODKEY) |
348 return; |
354 return; |
424 XConfigureEvent *ev = &e->xconfigure; |
430 XConfigureEvent *ev = &e->xconfigure; |
425 |
431 |
426 if(ev->window == root && (ev->width != sw || ev->height != sh)) { |
432 if(ev->window == root && (ev->width != sw || ev->height != sh)) { |
427 sw = ev->width; |
433 sw = ev->width; |
428 sh = ev->height; |
434 sh = ev->height; |
429 setgeom(NULL); |
435 setgeom(geom->symbol); |
430 } |
436 } |
431 } |
437 } |
432 |
438 |
433 void |
439 void |
434 configurerequest(XEvent *e) { |
440 configurerequest(XEvent *e) { |
1415 |
1421 |
1416 void |
1422 void |
1417 setgeom(const char *arg) { |
1423 setgeom(const char *arg) { |
1418 unsigned int i; |
1424 unsigned int i; |
1419 |
1425 |
1420 for(i = 0; arg && i < LENGTH(geoms); i++) |
1426 if(!arg) { |
1421 if(!strcmp(geoms[i].symbol, arg)) |
1427 if(++geom == &geoms[LENGTH(geoms)]) |
1422 break; |
1428 geom = &geoms[0]; |
1423 if(i == LENGTH(geoms)) |
1429 } |
1424 return; |
1430 else { |
1425 geom = &geoms[i]; |
1431 for(i = 0; i < LENGTH(geoms); i++) |
|
1432 if(!strcmp(geoms[i].symbol, arg)) |
|
1433 break; |
|
1434 if(i == LENGTH(geoms)) |
|
1435 return; |
|
1436 geom = &geoms[i]; |
|
1437 } |
1426 geom->apply(); |
1438 geom->apply(); |
1427 updatebarpos(); |
1439 updatebarpos(); |
1428 arrange(); |
1440 arrange(); |
1429 } |
1441 } |
1430 |
1442 |
1431 void |
1443 void |
1432 setlayout(const char *arg) { |
1444 setlayout(const char *arg) { |
1433 static Layout *revert = 0; |
|
1434 unsigned int i; |
1445 unsigned int i; |
1435 |
1446 |
1436 if(!arg) |
1447 if(!arg) { |
1437 return; |
1448 if(++lt == &layouts[LENGTH(layouts)]) |
1438 for(i = 0; i < LENGTH(layouts); i++) |
1449 lt = &layouts[0]; |
1439 if(!strcmp(arg, layouts[i].symbol)) |
1450 } |
1440 break; |
|
1441 if(i == LENGTH(layouts)) |
|
1442 return; |
|
1443 if(revert && &layouts[i] == lt) |
|
1444 lt = revert; |
|
1445 else { |
1451 else { |
1446 revert = lt; |
1452 for(i = 0; i < LENGTH(layouts); i++) |
|
1453 if(!strcmp(arg, layouts[i].symbol)) |
|
1454 break; |
|
1455 if(i == LENGTH(layouts)) |
|
1456 return; |
1447 lt = &layouts[i]; |
1457 lt = &layouts[i]; |
1448 } |
1458 } |
1449 if(sel) |
1459 if(sel) |
1450 arrange(); |
1460 arrange(); |
1451 else |
1461 else |