commit 33ffed72931e6df2fe55b9e39e19695bc7509ec8
parent 75ecccb900b804db1d54ce9763be9435885877f3
Author: Anselm R. Garbe <garbeam@wmii.de>
Date: Wed, 22 Feb 2006 10:58:00 +0100
removed detach layer as proposed in IRC yesterday, we will have some sendto soon
Diffstat:
5 files changed, 3 insertions(+), 134 deletions(-)
diff --git a/cmd/wm/client.c b/cmd/wm/client.c
@@ -248,13 +248,6 @@ handle_client_property(Client *c, XPropertyEvent *e)
void
destroy_client(Client * c)
{
- size_t i;
- for(i = 0; i < ndet; i++)
- if(det[i] == c) {
- cext_array_detach((void **)det, c, &detsz);
- ndet--;
- break;
- }
XFreeGC(dpy, c->frame.gc);
XDestroyWindow(dpy, c->frame.win);
cext_array_detach((void **)client, c, &clientsz);
@@ -410,12 +403,8 @@ detach_client(Client *c, Bool unmap)
if(a->sel >= a->nclient)
a->sel = 0;
if(!c->destroyed) {
- if(!unmap) {
- det = (Client **)cext_array_attach((void **)det, c,
- sizeof(Client *), &detsz);
- ndet++;
+ if(!unmap)
unmap_client(c);
- }
c->rect.x = c->frame.rect.x;
c->rect.y = c->frame.rect.y;
reparent_client(c, root, c->rect.x, c->rect.y);
diff --git a/cmd/wm/fs.c b/cmd/wm/fs.c
@@ -1050,10 +1050,6 @@ xwrite(IXPConn *c, Fcall *fcall)
srv.running = 0;
else if(!strncmp(buf, "pager", 6))
pager();
- else if(!strncmp(buf, "detached", 9))
- detached_clients();
- else if(!strncmp(buf, "attach", 7))
- attach_detached_client();
else if(!strncmp(buf, "select", 6))
select_page(&buf[7]);
else if(!strncmp(buf, "warp ", 5)) {
diff --git a/cmd/wm/wm.c b/cmd/wm/wm.c
@@ -224,111 +224,6 @@ pager()
}
}
-static void
-map_detached_clients()
-{
- unsigned int i, ic, ir, tw, th, rows, cols;
- int dx, dy;
- XRectangle cr;
-
- blitz_getbasegeometry(ndet, &cols, &rows);
- if(!cols)
- cols = 1;
- if(!rows)
- rows = 1;
- dx = (cols - 1) * DEF_PAGER_GAP; /* DEF_PAGER_GAPpx space */
- dy = (rows - 1) * DEF_PAGER_GAP; /* DEF_PAGER_GAPpx space */
- tw = (rect.width - dx) / cols;
- th = (rect.height - dy) / rows;
-
- i = 0;
- for(ir = 0; ir < rows; ir++) {
- for(ic = 0; ic < cols; ic++) {
- if(i >= ndet)
- return;
- cr.x = ic * tw + (ic * DEF_PAGER_GAP);
- cr.y = ir * th + (ir * DEF_PAGER_GAP);
- cr.width = tw;
- cr.height = th;
- XMoveResizeWindow(dpy, det[i]->win, cr.x, cr.y, cr.width, cr.height);
- configure_client(det[i]);
- map_client(det[i]);
- grab_mouse(det[i]->win, AnyModifier, Button1);
- XSync(dpy, False);
- i++;
- }
- }
-}
-
-void
-detached_clients()
-{
- XEvent ev;
- int n;
- size_t i;
- Client *c;
-
- if(!ndet)
- return;
- XClearWindow(dpy, transient);
- XMapRaised(dpy, transient);
- map_detached_clients();
- while(XGrabKeyboard
- (dpy, transient, True, GrabModeAsync, GrabModeAsync,
- CurrentTime) != GrabSuccess)
- usleep(20000);
-
- for(;;) {
- while(!XCheckMaskEvent(dpy, ButtonPressMask | KeyPressMask, &ev)) {
- usleep(20000);
- continue;
- }
- switch (ev.type) {
- case KeyPress:
- XUnmapWindow(dpy, transient);
- for(i = 0; i < ndet; i++)
- unmap_client(det[i]);
- if((n = handle_kpress(&ev.xkey)) != -1) {
- if(n < ndet) {
- c = det[n];
- cext_array_detach((void **)det, c, &detsz);
- ndet--;
- attach_client(c);
- }
- }
- XUngrabKeyboard(dpy, CurrentTime);
- XSync(dpy, False);
- return;
- break;
- case ButtonPress:
- XUnmapWindow(dpy, transient);
- for(i = 0; i < ndet; i++)
- unmap_client(det[i]);
- if((ev.xbutton.button == Button1)
- && (c = win_to_client(ev.xbutton.window))) {
- cext_array_detach((void **)det, c, &detsz);
- ndet--;
- attach_client(c);
- }
- XUngrabKeyboard(dpy, CurrentTime);
- XSync(dpy, False);
- return;
- break;
- }
- }
-}
-
-void
-attach_detached_client()
-{
- Client *c = ndet ? det[0] : nil;
- if(c) {
- cext_array_detach((void **)det, c, &detsz);
- ndet--;
- attach_client(c);
- }
-}
-
Client *
win_to_client(Window w)
{
@@ -627,9 +522,9 @@ main(int argc, char *argv[])
ixp_server_open_conn(&srv, ConnectionNumber(dpy), check_x_event, nil);
init_x_event_handler();
- ndet = npage = nclient = detsz = pagesz = clientsz = sel = 0;
+ npage = nclient = pagesz = clientsz = sel = 0;
page = nil;
- client = det = nil;
+ client = nil;
key = nil;
keysz = nkey = 0;
diff --git a/cmd/wm/wm.h b/cmd/wm/wm.h
@@ -136,9 +136,6 @@ Page **page;
size_t npage;
size_t pagesz;
size_t sel;
-Client **det;
-size_t ndet;
-size_t detsz;
Client **client;
size_t nclient;
size_t clientsz;
@@ -284,6 +281,4 @@ int win_proto(Window w);
int win_state(Window w);
/*void handle_after_write(IXPServer * s, File * f);*/
void pager();
-void detached_clients();
-void attach_detached_client();
diff --git a/rc/wmiirc b/rc/wmiirc
@@ -129,12 +129,6 @@ while(event=`{read}) {
} &
case $MODKEY-t
extern xterm -rv &
- case $MODKEY-d
- xwrite /sel/sel/sel/ctl detach
- case $MODKEY-a
- xwrite /ctl attach
- case $MODKEY-Shift-a
- xwrite /ctl detached
case $MODKEY-n
wmiir read /sel/new >/dev/null >[2=1]
case $MODKEY-m