Hi again,

I've started to dig further into this plan, and will add a number of
ideas/concepts/how-it-will-be things. Feel free to discuss.


- We cares about tags only on top level object in the hierarchy:

                +----------+
                | root win |
                +----------+
                     |
          +----------+----------+
          |                     |
      +--------+            +--------+
      | client |            | wibox  |       <-- top level windows
      +--------+            +--------+
                                |
                       +----------------+
                       |                |
                  +--------+         +--------+
                  | wibox  |         | client |
                  +--------+         +--------+


That means all client/wibox objects can have tags, but we will only
honor the top level windows one.

- On .parent setting, wibox creates a X window attached to the requested
  parent window and is unmapped.
  To be mapped they should be .visible or have a tag if they are
  parented to a root window.

- Wibox will be destroyed on .parent = nil.
  If they have a client as child, the client will be reparented to the
  root window. (Otherwise it would be destroy by the X server.)

I'm thinking about having only one Lua type for wibox and client, and
not use inheritance at all.
The only difference would be a little flag (if needed, but I think it
will), and that the xcb_window_t window will be:
- in client case, created/destroyed by the application
- in wibox case, created_destroyed by awesome

Currently unresolved issue:
- How to handle EWMH request, like fullscreen, sticky, etc?

-- 
Julien Danjou
// ᐰ <jul...@danjou.info>   http://julien.danjou.info
// 9A0D 5FD9 EB42 22F6 8974  C95C A462 B51E C2FE E5CD
// When I get sad, I stop being sad and be awesome instead. True story.

Attachment: signature.asc
Description: Digital signature

Reply via email to