dwm.c
changeset 1003 19d4ccea9745
parent 1002 5cc2be8efeb4
child 1004 9bb192795c5a
equal deleted inserted replaced
1002:5cc2be8efeb4 1003:19d4ccea9745
   332 	else if((c = getclient(ev->window))) {
   332 	else if((c = getclient(ev->window))) {
   333 		focus(c);
   333 		focus(c);
   334 		if(CLEANMASK(ev->state) != MODKEY)
   334 		if(CLEANMASK(ev->state) != MODKEY)
   335 			return;
   335 			return;
   336 		if(ev->button == Button1) {
   336 		if(ev->button == Button1) {
   337 			if(!isarrange(floating) && !c->isfloating)
   337 			if(isarrange(floating) || c->isfloating)
       
   338 				restack();
       
   339 			else
   338 				togglefloating(NULL);
   340 				togglefloating(NULL);
   339 			else
       
   340 				restack();
       
   341 			movemouse(c);
   341 			movemouse(c);
   342 		}
   342 		}
   343 		else if(ev->button == Button2) {
   343 		else if(ev->button == Button2) {
   344 			if(isarrange(tile) && !c->isfixed && c->isfloating)
   344 			if(isarrange(tile) && !c->isfixed && c->isfloating)
   345 				togglefloating(NULL);
   345 				togglefloating(NULL);
   346 			else
   346 			else
   347 				zoom(NULL);
   347 				zoom(NULL);
   348 		}
   348 		}
   349 		else if(ev->button == Button3 && !c->isfixed) {
   349 		else if(ev->button == Button3 && !c->isfixed) {
   350 			if(!isarrange(floating) && !c->isfloating)
   350 			if(isarrange(floating) || c->isfloating)
       
   351 				restack();
       
   352 			else
   351 				togglefloating(NULL);
   353 				togglefloating(NULL);
   352 			else
       
   353 				restack();
       
   354 			resizemouse(c);
   354 			resizemouse(c);
   355 		}
   355 		}
   356 	}
   356 	}
   357 }
   357 }
   358 
   358 
   442 
   442 
   443 void
   443 void
   444 configurenotify(XEvent *e) {
   444 configurenotify(XEvent *e) {
   445 	XConfigureEvent *ev = &e->xconfigure;
   445 	XConfigureEvent *ev = &e->xconfigure;
   446 
   446 
   447 	if (ev->window == root && (ev->width != sw || ev->height != sh)) {
   447 	if(ev->window == root && (ev->width != sw || ev->height != sh)) {
   448 		sw = ev->width;
   448 		sw = ev->width;
   449 		sh = ev->height;
   449 		sh = ev->height;
   450 		XFreePixmap(dpy, dc.drawable);
   450 		XFreePixmap(dpy, dc.drawable);
   451 		dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen));
   451 		dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen));
   452 		XResizeWindow(dpy, barwin, sw, bh);
   452 		XResizeWindow(dpy, barwin, sw, bh);
   881 	else {
   881 	else {
   882 		if(dc.font.xfont)
   882 		if(dc.font.xfont)
   883 			XFreeFont(dpy, dc.font.xfont);
   883 			XFreeFont(dpy, dc.font.xfont);
   884 		dc.font.xfont = NULL;
   884 		dc.font.xfont = NULL;
   885 		if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr))
   885 		if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr))
   886 		|| !(dc.font.xfont = XLoadQueryFont(dpy, "fixed")))
   886 		&& !(dc.font.xfont = XLoadQueryFont(dpy, "fixed")))
   887 			eprint("error, cannot load font: '%s'\n", fontstr);
   887 			eprint("error, cannot load font: '%s'\n", fontstr);
   888 		dc.font.ascent = dc.font.xfont->ascent;
   888 		dc.font.ascent = dc.font.xfont->ascent;
   889 		dc.font.descent = dc.font.xfont->descent;
   889 		dc.font.descent = dc.font.xfont->descent;
   890 	}
   890 	}
   891 	dc.font.height = dc.font.ascent + dc.font.descent;
   891 	dc.font.height = dc.font.ascent + dc.font.descent;
  1402 		return;
  1402 		return;
  1403 	/* arg handling, manipulate mwfact */
  1403 	/* arg handling, manipulate mwfact */
  1404 	if(arg == NULL)
  1404 	if(arg == NULL)
  1405 		mwfact = MWFACT;
  1405 		mwfact = MWFACT;
  1406 	else if(1 == sscanf(arg, "%lf", &delta)) {
  1406 	else if(1 == sscanf(arg, "%lf", &delta)) {
  1407 		if(arg[0] != '+' && arg[0] != '-')
  1407 		if(arg[0] == '+' || arg[0] == '-')
       
  1408 			mwfact += delta;
       
  1409 		else
  1408 			mwfact = delta;
  1410 			mwfact = delta;
  1409 		else
       
  1410 			mwfact += delta;
       
  1411 		if(mwfact < 0.1)
  1411 		if(mwfact < 0.1)
  1412 			mwfact = 0.1;
  1412 			mwfact = 0.1;
  1413 		else if(mwfact > 0.9)
  1413 		else if(mwfact > 0.9)
  1414 			mwfact = 0.9;
  1414 			mwfact = 0.9;
  1415 	}
  1415 	}
  1642 		sel->rh = sel->h;
  1642 		sel->rh = sel->h;
  1643 		resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->border, True);
  1643 		resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->border, True);
  1644 	}
  1644 	}
  1645 	else {
  1645 	else {
  1646 		resize(sel, sel->rx, sel->ry, sel->rw, sel->rh, True);
  1646 		resize(sel, sel->rx, sel->ry, sel->rw, sel->rh, True);
  1647 		if (!sel->wasfloating)
  1647 		if(!sel->wasfloating)
  1648 			togglefloating(NULL);
  1648 			togglefloating(NULL);
  1649 	}
  1649 	}
  1650 	drawbar();
  1650 	drawbar();
  1651 	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
  1651 	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
  1652 }
  1652 }