Re: [dwm] [PATCH] replacing "#define ISTILE" by "Bool istile"

From: Anselm R. Garbe <arg_AT_suckless.org>
Date: Sat, 27 Oct 2007 17:47:54 +0200

On Sat, Oct 27, 2007 at 05:11:01PM +0200, Sander van Dijk wrote:
> On 10/27/07, Enno Gottox Boland <gottox_AT_gmail.com> wrote:
> > This is also possible. But my intention was that the user does not
> > decide wheather a function is tile or non-tile. It is the choice of
> > the programmer.
>
> Right, didn't look at it that way. Now that we're talking about
> ISTILE, I think there's some room for improvement in the way it
> functions/is used as well: right now, if ISTILE evaluates to true,
> this means that:
>
> 1. mwfact applies to that layout.
> 2. zoom applies to that layout.
> 3. you can push forced-floating clients back into that layout with Button2.
>
> I can imagine there are layouts where you want some, but not all of
> this, which is not possible with ISTILE alone. Not sure what the right
> way to change that would be (nor if there is one), but I think it's
> worth a thought.

I could imagine a proceed() function which each layout
should implement a la:

Bool
proceed(void (*func)(const char *)) {
        if(isarrange(tile))
                return func == setmwfact
                    || func == zoom
                    || func == togglefloating;
        return False;
}

Then, instead of ISTILE, we could perform in zoom() for example:

        if(!layouts[ltidx].proceed(zoom))
                return;

But this will make it necessary that the proceed-check function
is set in the Layout's definition in config.h (however not every
layout would need to reinvent the proceed function!).

The name might be misleading and the whole idea is untested.

Regards,

-- 
 Anselm R. Garbe >< http://www.suckless.org/ >< GPG key: 0D73F361
Received on Sat Oct 27 2007 - 17:47:54 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:02:57 UTC