aewl
diff event.c @ 9:d567f430a81d
fixed several stuff (gridwm gets better and better)
author | Anselm R. Garbe <garbeam@wmii.de> |
---|---|
date | Tue, 11 Jul 2006 12:52:57 +0200 |
parents | e0cefb3981c8 |
children | 703255003abb |
line diff
1.1 --- a/event.c Tue Jul 11 11:50:18 2006 +0200 1.2 +++ b/event.c Tue Jul 11 12:52:57 2006 +0200 1.3 @@ -16,7 +16,6 @@ 1.4 static void enternotify(XEvent *e); 1.5 static void leavenotify(XEvent *e); 1.6 static void expose(XEvent *e); 1.7 -static void keypress(XEvent *e); 1.8 static void keymapnotify(XEvent *e); 1.9 static void maprequest(XEvent *e); 1.10 static void propertynotify(XEvent *e); 1.11 @@ -47,80 +46,36 @@ 1.12 static void 1.13 configurerequest(XEvent *e) 1.14 { 1.15 -#if 0 1.16 XConfigureRequestEvent *ev = &e->xconfigurerequest; 1.17 XWindowChanges wc; 1.18 - XRectangle *frect; 1.19 Client *c; 1.20 1.21 - c = client_of_win(ev->window); 1.22 + c = getclient(ev->window); 1.23 ev->value_mask &= ~CWSibling; 1.24 if(c) { 1.25 - gravitate_client(c, True); 1.26 - 1.27 if(ev->value_mask & CWX) 1.28 - c->rect.x = ev->x; 1.29 + c->r[RFloat].x = ev->x; 1.30 if(ev->value_mask & CWY) 1.31 - c->rect.y = ev->y; 1.32 + c->r[RFloat].y = ev->y; 1.33 if(ev->value_mask & CWWidth) 1.34 - c->rect.width = ev->width; 1.35 + c->r[RFloat].width = ev->width; 1.36 if(ev->value_mask & CWHeight) 1.37 - c->rect.height = ev->height; 1.38 + c->r[RFloat].height = ev->height; 1.39 if(ev->value_mask & CWBorderWidth) 1.40 c->border = ev->border_width; 1.41 - 1.42 - gravitate_client(c, False); 1.43 - 1.44 - if(c->frame) { 1.45 - if(c->sel->area->floating) 1.46 - frect=&c->sel->rect; 1.47 - else 1.48 - frect=&c->sel->revert; 1.49 - 1.50 - if(c->rect.width >= screen->rect.width && c->rect.height >= screen->rect.height) { 1.51 - frect->y = wc.y = -height_of_bar(); 1.52 - frect->x = wc.x = -def.border; 1.53 - } 1.54 - else { 1.55 - frect->y = wc.y = c->rect.y - height_of_bar(); 1.56 - frect->x = wc.x = c->rect.x - def.border; 1.57 - } 1.58 - frect->width = wc.width = c->rect.width + 2 * def.border; 1.59 - frect->height = wc.height = c->rect.height + def.border 1.60 - + height_of_bar(); 1.61 - wc.border_width = 1; 1.62 - wc.sibling = None; 1.63 - wc.stack_mode = ev->detail; 1.64 - if(c->sel->area->view != screen->sel) 1.65 - wc.x += 2 * screen->rect.width; 1.66 - if(c->sel->area->floating) { 1.67 - XConfigureWindow(dpy, c->framewin, ev->value_mask, &wc); 1.68 - configure_client(c); 1.69 - } 1.70 - } 1.71 } 1.72 1.73 wc.x = ev->x; 1.74 wc.y = ev->y; 1.75 wc.width = ev->width; 1.76 wc.height = ev->height; 1.77 - 1.78 - if(c && c->frame) { 1.79 - wc.x = def.border; 1.80 - wc.y = height_of_bar(); 1.81 - wc.width = c->sel->rect.width - 2 * def.border; 1.82 - wc.height = c->sel->rect.height - def.border - height_of_bar(); 1.83 - } 1.84 - 1.85 wc.border_width = 0; 1.86 wc.sibling = None; 1.87 wc.stack_mode = Above; 1.88 ev->value_mask &= ~CWStackMode; 1.89 ev->value_mask |= CWBorderWidth; 1.90 XConfigureWindow(dpy, ev->window, ev->value_mask, &wc); 1.91 - 1.92 XFlush(dpy); 1.93 -#endif 1.94 } 1.95 1.96 static void 1.97 @@ -182,32 +137,6 @@ 1.98 } 1.99 1.100 static void 1.101 -keypress(XEvent *e) 1.102 -{ 1.103 -#if 0 1.104 - XKeyEvent *ev = &e->xkey; 1.105 - KeySym k = 0; 1.106 - char buf[32]; 1.107 - int n; 1.108 - static Frame *f; 1.109 - 1.110 - 1.111 - ev->state &= valid_mask; 1.112 - if((f = frame_of_win(ev->window))) { 1.113 - buf[0] = 0; 1.114 - n = XLookupString(ev, buf, sizeof(buf), &k, 0); 1.115 - if(IsFunctionKey(k) || IsKeypadKey(k) || IsMiscFunctionKey(k) 1.116 - || IsPFKey(k) || IsPrivateKeypadKey(k)) 1.117 - return; 1.118 - buf[n] = 0; 1.119 - blitz_kpress_input(&f->tagbar, ev->state, k, buf); 1.120 - } 1.121 - else 1.122 - key(root, ev->state, (KeyCode) ev->keycode); 1.123 -#endif 1.124 -} 1.125 - 1.126 -static void 1.127 keymapnotify(XEvent *e) 1.128 { 1.129 #if 0 1.130 @@ -231,7 +160,11 @@ 1.131 } 1.132 1.133 /*if(!client_of_win(ev->window))*/ 1.134 - manage(create_client(ev->window, &wa)); 1.135 + /*manage(create_client(ev->window, &wa));*/ 1.136 + XMapRaised(dpy, ev->window); 1.137 + XMoveResizeWindow(dpy, ev->window, rect.x, rect.y, rect.width, rect.height - barrect.height); 1.138 + XSetInputFocus(dpy, ev->window, RevertToPointerRoot, CurrentTime); 1.139 + XFlush(dpy); 1.140 } 1.141 1.142 static void