event.c
changeset 755 887d74605df8
parent 753 db484aa5c2cf
child 756 df3ea2f76f54
equal deleted inserted replaced
754:65ac12761a04 755:887d74605df8
   154 			restack();
   154 			restack();
   155 			movemouse(c);
   155 			movemouse(c);
   156 		}
   156 		}
   157 		else if(ev->button == Button2)
   157 		else if(ev->button == Button2)
   158 			zoom(NULL);
   158 			zoom(NULL);
   159 		else if(ev->button == Button3 && (arrange == dofloat || c->isfloat) &&
   159 		else if(ev->button == Button3 && (arrange == dofloat || c->isfloat)
   160 				!c->isfixed) {
   160 				&& !c->isfixed)
       
   161 		{
   161 			restack();
   162 			restack();
   162 			resizemouse(c);
   163 			resizemouse(c);
   163 		}
   164 		}
   164 	}
   165 	}
   165 }
   166 }
   171 	XWindowChanges wc;
   172 	XWindowChanges wc;
   172 
   173 
   173 	if((c = getclient(ev->window))) {
   174 	if((c = getclient(ev->window))) {
   174 		c->ismax = False;
   175 		c->ismax = False;
   175 		c->border = (ev->value_mask & CWBorderWidth) ? ev->border_width : c->border;
   176 		c->border = (ev->value_mask & CWBorderWidth) ? ev->border_width : c->border;
   176 		if((!c->isfloat && (arrange != dofloat))
   177 		if(c->isfixed || c->isfloat || (arrange == dofloat)) {
   177 			|| ((ev->value_mask & (CWX | CWY)) && !(ev->value_mask & (CWWidth | CWHeight))))
       
   178 			configure(c);
       
   179 		else {
       
   180 			c->x = (ev->value_mask & CWX) ? ev->x : c->x;
   178 			c->x = (ev->value_mask & CWX) ? ev->x : c->x;
   181 			c->y = (ev->value_mask & CWY) ? ev->y : c->y;
   179 			c->y = (ev->value_mask & CWY) ? ev->y : c->y;
   182 			c->w = (ev->value_mask & CWWidth) ? ev->width : c->w;
   180 			c->w = (ev->value_mask & CWWidth) ? ev->width : c->w;
   183 			c->h = (ev->value_mask & CWHeight) ? ev->height : c->h;
   181 			c->h = (ev->value_mask & CWHeight) ? ev->height : c->h;
       
   182 			if((ev->value_mask & (CWX | CWY)) && !(ev->value_mask & (CWWidth | CWHeight)))
       
   183 				configure(c);
   184 			resize(c, False);
   184 			resize(c, False);
   185 			if(!isvisible(c))
   185 			if(!isvisible(c))
   186 				XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
   186 				XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
   187 		}
   187 		}
       
   188 		else
       
   189 			configure(c);
   188 	}
   190 	}
   189 	else {
   191 	else {
   190 		wc.x = ev->x;
   192 		wc.x = ev->x;
   191 		wc.y = ev->y;
   193 		wc.y = ev->y;
   192 		wc.width = ev->width;
   194 		wc.width = ev->width;