On Wed, Mar 19, 2008 at 01:15:30AM +0100, Nibble wrote:
> Finally, I have included the next Geoms in my config.h (dual screen setup: 
> virtual 2048x768):
> 
> /* Single screen */
> DEFGEOM(single, 0,  0, sw,  0, bh, sw, sh-bh, wx, wy, MWFACT*sw, wh, mx+mw, 
> wy, ww-mw, wh,  wx, wy, ww, wh)
> /* Dual screen */
> DEFGEOM(dual, 0, 0, 1024, 0, bh, sw, sh-bh, wx, wy, 1024,768-bh, 1024, 0, 
> ww-mw, sh,  mx, my, mw, mh)
> /* Single screen without bar*/
> DEFGEOM(singlewob,  -sw, 0, sw,  0, 0, sw, sh, wx, wy, MWFACT*sw, wh, mx+mw, 
> wy, ww-mw, wh,  wx, wy, ww, wh)
> /* Dual screen without bar */
> DEFGEOM(dualwob, -1024, 0, 1024, 0, 0, sw, sh, wx, wy, 1024, 768, 1024,  0, 
> ww-mw, sh,  mx, my, mw, mh)
> /* Shrink master */
> DEFGEOM(shrinkmaster, bx, by, bw, wx, wy, ww, wh, mx, my, mw-=20, mh, tx-=20, 
> ty, tw+=20, th, mox, moy, mow, moh)
> /* Grow master */
> DEFGEOM(growmaster, bx, by, bw, wx, wy, ww, wh, mx, my, mw+=20, mh, tx+=20, 
> ty, tw-=20, th, mox, moy, mow, moh)
> 
> Geom geoms[] = {
>         /* symbol       function */
>         { "<->",        single },       /* first entry is default */
>         { "-)(",        dual },
>         { "<.>",        singlewob },
>         { ".)(",        dualwob },
>         { "|-",         shrinkmaster },
>         { "+|",         growmaster },
> };
> 
> I have kept the shrinkmaster and growmaster geoms due to it is useful to 
> change the master area width regardless of the geom you are using. 

Well there is one ugly thing to note about the shrinkmaster and
growmaster proposal I did some days ago, which I heavily dislike
and that's why I also don't propose to keep them as an official
feature.

The problem is:

void
configurenotify(XEvent *e) {
        XConfigureEvent *ev = &e->xconfigure;

        if(ev->window == root && (ev->width != sw || ev->height != sh)) {
                sw = ev->width;
                sh = ev->height;
                setgeom(NULL);
        }
}

This event handler is invoked whenever X changes the screen
resolution dynamically. So for the case of
shrinkmaster/growmaster being the current geometry this means,
that the master area will shrink/grow whenever the
screen resolution is changed dynamically.

That's the reason why I propose to get over the idea of
shrink/growmaster.

Kind regards,
-- 
 Anselm R. Garbe >< http://www.suckless.org/ >< GPG key: 0D73F361

Reply via email to