X-Git-Url: https://jasonwoof.com/gitweb/?p=dwm.git;a=blobdiff_plain;f=dwm.c;h=b7f5a2650ac07a243f2f5a137c9fa490a01e0031;hp=7b017cbcfa756b616c7a086710382f98a95bd344;hb=e0fbc682ec3db0e27b7dc09546aea36906295bf6;hpb=6857120180bace35d1bc88b0a298e61ef5fbe8d6 diff --git a/dwm.c b/dwm.c index 7b017cb..b7f5a26 100644 --- a/dwm.c +++ b/dwm.c @@ -364,6 +364,9 @@ applyrules(Client *c) { && (!r->instance || strstr(instance, r->instance))) { c->isfloating = r->isfloating; + if(r->isfloating) { + c->x = -1; c->y = -2; // secret code for centered + } c->tags |= r->tags; c->screen_hog = r->screen_hog; for(m = mons; m && m->num != r->monitor; m = m->next); @@ -488,7 +491,7 @@ attachstack(Client *c) { void buttonpress(XEvent *e) { - unsigned int i, x, click; + unsigned int i, click; Arg arg = {0}; Client *c; Monitor *m; @@ -502,20 +505,7 @@ buttonpress(XEvent *e) { focus(NULL); } if(ev->window == selmon->barwin) { - i = x = 0; - do - x += TEXTW(tags[i]); - while(ev->x >= x && ++i < LENGTH(tags)); - if(i < LENGTH(tags)) { - click = ClkTagBar; - arg.ui = 1 << i; - } - else if(ev->x < x + blw) - click = ClkLtSymbol; - else if(ev->x > selmon->ww - TEXTW(stext)) - click = ClkStatusText; - else - click = ClkWinTitle; + return; } else if((c = wintoclient(ev->window))) { focus(c); @@ -1201,8 +1191,13 @@ manage(Window w, XWindowAttributes *wa) { applyrules(c); } /* geometry */ - c->x = c->oldx = wa->x; - c->y = c->oldy = wa->y; + if(c->x == -1 && c->y == -2) { // secret code for centered + c->x = c->oldx = (c->mon->ww - wa->width) / 2; + c->y = c->oldy = (c->mon->wh - wa->height) / 2; + } else { + c->x = c->oldx = wa->x; + c->y = c->oldy = wa->y; + } c->w = c->oldw = wa->width; c->h = c->oldh = wa->height; c->oldbw = wa->border_width; @@ -1243,6 +1238,7 @@ manage(Window w, XWindowAttributes *wa) { XMapWindow(dpy, c->win); focus(c); if(key_buffering) { + // FIXME: try turning off buffering below where we send the virt keypresses key_buffering = False; grabkeys(); // stop grabbing typing keys if(key_buffer_len > 0) { @@ -1251,6 +1247,7 @@ manage(Window w, XWindowAttributes *wa) { } } key_buffer_len = 0; + // FIXME ie here } }