comparison client.c @ 19:b5510d0c6d43

added basic mouse support (actually we don't need more)
author Anselm R. Garbe <garbeam@wmii.de>
date Tue, 11 Jul 2006 21:41:49 +0200
parents 1efa34c6e1b6
children 4560e0882c1d
comparison
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);