[clfswm-devel] Frame: odd behavior ?

Philippe Brochard pbrochard at common-lisp.net
Mon Apr 14 20:04:20 UTC 2008


Xavier Maillard writes:

>    Xavier Maillard writes:
>
>    >    > Maybe I am dumb, maybe I misunderstood something _but_ I can't
>    >    > find how to have multiple frames In full screen mode.
>    >    >
>    >    > Can somebody explain exactly what a frame is now in the CLFSWM
>    >    > terminology ?
>    >    >
>    >    A frame is a geometrical group which can contain some other frames or
>    >    some application windows.
>    >    The current root frame is fullscreen maximized.
>    >
>    > So when CLFSWM is starting, it has two frames: 0 => root and 1 =>
>    > default. Right ? If so, why not stick with the root frame by
>    > default ?
>    >
>    Yes there is two frames at startup. Because I think that the first
>    thing most users will do is to add a default frame to contain its
>    applications.
>
> I have a special X session where I am just playing with CLFSWM
> source code and make test. There, I do not need anything but the
> root frame :) I make changes and then test them there.
>
Ah, ok, like me when I debug it.

>    Except in some rare cases you don't want to have all your windows
>    maximized and not resizable. I think that the first application window
>    have to go in its own frame and not in the root frame (you can make it
>    fullscreen after if you want).
>
> Why not have an option for this behaviour ? Then, we would have
> to check the value of a variable and we would have to act
> according to this variable.
>
Your patch to put this behaviour in the default hook is prefect.
I have not to think in advance to what users want to do with there
clfswm :)

>    > Well I tried that it throws an error when I want to create a
>    > frame :
>    >
>    > DEBUG[2 - dbg]  *ROOT-FRAME*=#<CLFSWM::FRAME #x204A843E>   
>    > DEBUG[3 - dbg]  *CURRENT-CHILD*=NIL   
>    > DEBUG[4 - dbg]  *CURRENT-ROOT*=#<CLFSWM::FRAME #x204A843E>   
>    >
>    > *** - NO-APPLICABLE-METHOD: When calling #<STANDARD-GENERIC-FUNCTION CLFSWM::SELECT-CHILD> with arguments (NIL NIL), no method is
>    >       applicable.
>    > The following restarts are available:
>    > RETRY          :R1      try calling CLFSWM::SELECT-CHILD again
>    > RETURN         :R2      specify return values
>    >
>    > I should probably have removed the setf *current-child*.
>    >
>    What is the code exactly? Because it seems that you haven't defined
>    the current child (*CURRENT-CHILD*=NIL).
>
> Yes, I had something wrong here. I fixed it.
>
>    Another thing, it's the root frame which contain all other children
>    (frames or application windows). The only thing you can do with the
>    *root-frame* is to append some children in its child list.
>
> Yes.
>
In fact another important thing you can do withthe root frame is to
set an automatic layout.

>    Then you have to tell which is the current root (the child that have
>    to be fullscreen maximized) and which is the current child (the
>    selected and focused child).
>
> This is, in fact, what I found difficult to understand at first.
> Now, it is all crystal clear to me and I (finally) understood the
> concept. Thank you for your explanation(s).
>
Yes I think I have to be clear for the next release because now clfswm
is less conventional and the tree view is not something easy to
understand. A little video may help here.

Philippe

-- 
Philippe Brochard    <pbrochard at common-lisp.net>
                      http://hocwp.free.fr




More information about the clfswm-devel mailing list