79 setclientstate(Client *c, long state) { |
79 setclientstate(Client *c, long state) { |
80 long data[] = {state, None}; |
80 long data[] = {state, None}; |
81 |
81 |
82 XChangeProperty(dpy, c->win, wmatom[WMState], wmatom[WMState], 32, |
82 XChangeProperty(dpy, c->win, wmatom[WMState], wmatom[WMState], 32, |
83 PropModeReplace, (unsigned char *)data, 2); |
83 PropModeReplace, (unsigned char *)data, 2); |
84 } |
|
85 |
|
86 static void |
|
87 togglemax(Client *c) { |
|
88 XEvent ev; |
|
89 |
|
90 if(c->isfixed) |
|
91 return; |
|
92 if((c->ismax = !c->ismax)) { |
|
93 c->rx = c->x; |
|
94 c->ry = c->y; |
|
95 c->rw = c->w; |
|
96 c->rh = c->h; |
|
97 resize(c, wax, way, waw - 2 * BORDERPX, wah - 2 * BORDERPX, True); |
|
98 } |
|
99 else |
|
100 resize(c, c->rx, c->ry, c->rw, c->rh, True); |
|
101 while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); |
|
102 } |
84 } |
103 |
85 |
104 static int |
86 static int |
105 xerrordummy(Display *dsply, XErrorEvent *ee) { |
87 xerrordummy(Display *dsply, XErrorEvent *ee) { |
106 return 0; |
88 return 0; |
169 else |
151 else |
170 XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); |
152 XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); |
171 } |
153 } |
172 |
154 |
173 void |
155 void |
174 killclient(Arg *arg) { |
156 killclient(Arg arg) { |
175 if(!sel) |
157 if(!sel) |
176 return; |
158 return; |
177 if(isprotodel(sel)) |
159 if(isprotodel(sel)) |
178 sendevent(sel->win, wmatom[WMProtocols], wmatom[WMDelete]); |
160 sendevent(sel->win, wmatom[WMProtocols], wmatom[WMDelete]); |
179 else |
161 else |