client.c
changeset 19 b5510d0c6d43
parent 18 1efa34c6e1b6
child 20 4560e0882c1d
equal deleted inserted replaced
18:1efa34c6e1b6 19:b5510d0c6d43
    68 	c->win = w;
    68 	c->win = w;
    69 	c->r[RFloat].x = wa->x;
    69 	c->r[RFloat].x = wa->x;
    70 	c->r[RFloat].y = wa->y;
    70 	c->r[RFloat].y = wa->y;
    71 	c->r[RFloat].width = wa->width;
    71 	c->r[RFloat].width = wa->width;
    72 	c->r[RFloat].height = wa->height;
    72 	c->r[RFloat].height = wa->height;
    73 	c->border = wa->border_width;
    73 	XSetWindowBorderWidth(dpy, c->win, 1);
    74 	XSetWindowBorderWidth(dpy, c->win, 0);
       
    75 	XSelectInput(dpy, c->win, CLIENT_MASK);
    74 	XSelectInput(dpy, c->win, CLIENT_MASK);
    76 	XGetTransientForHint(dpy, c->win, &c->trans);
    75 	XGetTransientForHint(dpy, c->win, &c->trans);
    77 	if(!XGetWMNormalHints(dpy, c->win, &c->size, &msize) || !c->size.flags)
    76 	if(!XGetWMNormalHints(dpy, c->win, &c->size, &msize) || !c->size.flags)
    78 		c->size.flags = PSize;
    77 		c->size.flags = PSize;
    79 	c->fixedsize =
    78 	c->fixedsize =
    95 	c->next = *l; /* *l == nil */
    94 	c->next = *l; /* *l == nil */
    96 	*l = c;
    95 	*l = c;
    97 	c->snext = stack;
    96 	c->snext = stack;
    98 	stack = c;
    97 	stack = c;
    99 	XMapWindow(dpy, c->win);
    98 	XMapWindow(dpy, c->win);
   100 	XGrabButton(dpy, AnyButton, Mod1Mask, c->win, False, ButtonPressMask,
    99 	XGrabButton(dpy, Button1, Mod1Mask, c->win, False, ButtonPressMask,
       
   100 			GrabModeAsync, GrabModeSync, None, None);
       
   101 	XGrabButton(dpy, Button2, Mod1Mask, c->win, False, ButtonPressMask,
       
   102 			GrabModeAsync, GrabModeSync, None, None);
       
   103 	XGrabButton(dpy, Button3, Mod1Mask, c->win, False, ButtonPressMask,
   101 			GrabModeAsync, GrabModeSync, None, None);
   104 			GrabModeAsync, GrabModeSync, None, None);
   102 	focus(c);
   105 	focus(c);
   103 }
   106 }
   104 
   107 
   105 void
   108 void
   114 	e.window = c->win;
   117 	e.window = c->win;
   115 	e.x = c->r[RFloat].x;
   118 	e.x = c->r[RFloat].x;
   116 	e.y = c->r[RFloat].y;
   119 	e.y = c->r[RFloat].y;
   117 	e.width = c->r[RFloat].width;
   120 	e.width = c->r[RFloat].width;
   118 	e.height = c->r[RFloat].height;
   121 	e.height = c->r[RFloat].height;
   119 	e.border_width = c->border;
   122 	e.border_width = 0;
   120 	e.above = None;
   123 	e.above = None;
   121 	e.override_redirect = False;
   124 	e.override_redirect = False;
   122 	XSelectInput(dpy, c->win, CLIENT_MASK & ~StructureNotifyMask);
   125 	XSelectInput(dpy, c->win, CLIENT_MASK & ~StructureNotifyMask);
   123 	XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *)&e);
   126 	XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *)&e);
   124 	XSelectInput(dpy, c->win, CLIENT_MASK);
   127 	XSelectInput(dpy, c->win, CLIENT_MASK);