event.c
changeset 946 b938876de936
parent 941 8c93b982f22e
child 953 d7de5c7bdbe4
equal deleted inserted replaced
945:89ea2acd2646 946:b938876de936
   143 	}
   143 	}
   144 	else if((c = getclient(ev->window))) {
   144 	else if((c = getclient(ev->window))) {
   145 		focus(c);
   145 		focus(c);
   146 		if(CLEANMASK(ev->state) != MODKEY)
   146 		if(CLEANMASK(ev->state) != MODKEY)
   147 			return;
   147 			return;
   148 		if(ev->button == Button1 && (lt->arrange == floating || c->isfloating)) {
   148 		if(ev->button == Button1 && (isfloating() || c->isfloating)) {
   149 			restack();
   149 			restack();
   150 			movemouse(c);
   150 			movemouse(c);
   151 		}
   151 		}
   152 		else if(ev->button == Button2)
   152 		else if(ev->button == Button2)
   153 			zoom(NULL);
   153 			zoom(NULL);
   154 		else if(ev->button == Button3
   154 		else if(ev->button == Button3
   155 		&& (lt->arrange == floating || c->isfloating) && !c->isfixed)
   155 		&& (isfloating() || c->isfloating) && !c->isfixed)
   156 		{
   156 		{
   157 			restack();
   157 			restack();
   158 			resizemouse(c);
   158 			resizemouse(c);
   159 		}
   159 		}
   160 	}
   160 	}
   168 
   168 
   169 	if((c = getclient(ev->window))) {
   169 	if((c = getclient(ev->window))) {
   170 		c->ismax = False;
   170 		c->ismax = False;
   171 		if(ev->value_mask & CWBorderWidth)
   171 		if(ev->value_mask & CWBorderWidth)
   172 			c->border = ev->border_width;
   172 			c->border = ev->border_width;
   173 		if(c->isfixed || c->isfloating || (lt->arrange == floating)) {
   173 		if(c->isfixed || c->isfloating || isfloating()) {
   174 			if(ev->value_mask & CWX)
   174 			if(ev->value_mask & CWX)
   175 				c->x = ev->x;
   175 				c->x = ev->x;
   176 			if(ev->value_mask & CWY)
   176 			if(ev->value_mask & CWY)
   177 				c->y = ev->y;
   177 				c->y = ev->y;
   178 			if(ev->value_mask & CWWidth)
   178 			if(ev->value_mask & CWWidth)
   214 		sh = ev->height;
   214 		sh = ev->height;
   215 		XFreePixmap(dpy, dc.drawable);
   215 		XFreePixmap(dpy, dc.drawable);
   216 		dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen));
   216 		dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen));
   217 		XResizeWindow(dpy, barwin, sw, bh);
   217 		XResizeWindow(dpy, barwin, sw, bh);
   218 		updatebarpos();
   218 		updatebarpos();
   219 		lt->arrange();
   219 		arrange();
   220 	}
   220 	}
   221 }
   221 }
   222 
   222 
   223 static void
   223 static void
   224 destroynotify(XEvent *e) {
   224 destroynotify(XEvent *e) {
   315 		switch (ev->atom) {
   315 		switch (ev->atom) {
   316 			default: break;
   316 			default: break;
   317 			case XA_WM_TRANSIENT_FOR:
   317 			case XA_WM_TRANSIENT_FOR:
   318 				XGetTransientForHint(dpy, c->win, &trans);
   318 				XGetTransientForHint(dpy, c->win, &trans);
   319 				if(!c->isfloating && (c->isfloating = (getclient(trans) != NULL)))
   319 				if(!c->isfloating && (c->isfloating = (getclient(trans) != NULL)))
   320 					lt->arrange();
   320 					arrange();
   321 				break;
   321 				break;
   322 			case XA_WM_NORMAL_HINTS:
   322 			case XA_WM_NORMAL_HINTS:
   323 				updatesizehints(c);
   323 				updatesizehints(c);
   324 				break;
   324 				break;
   325 		}
   325 		}