On Sat, 5 Oct 2013, Rodolfo García Peñas wrote:
Window Maker has some basic elements, like menus, appicons,... but these elements has relationship between them (like a database).

Probably better to think about them as objects and object relationships. This was the intended design originally, although later patches may have broken some of this.

In the basic/common model, the user has only one screen. The screen has some workspaces. Every Workspace has one Clip. All workspaces have one common Dock. The workspaces share menus,... In this model, we can use the w_global variable.

But, the problem is with "complex" models:

I think the problem is to find the correct relationships between objects. I.e. what object should have a reference to what other object instances. I don't know how is it now but from your description it appears that we have one Screen which may have multiple Workspaces where Workspaces share a single Dock and Menu instances but may have multiple Clips (one for each Workspace). Docks and Menus may have AppIcons and now Drawers (which are probably special Dock/Clip instances).

- Type 1, extended screen. In this model, the user has multiple screens, but the workspace is extended and use all the screens as only one. This model is like the basic model. No problem.

This model swaps the relation between Workspace and Screen so that we have a single Workspace which may have multiple Screens instead of having a single Screen with multiple Workspaces. Or did I get this wrong?

- Type 2, independent screens. In this model, the screens are independent. The user has multiple "basic" models. I didn't know this model, but in a previous question about multiple docks, I discovered it, (thanks Zoltan).

This model allows to have multiple "basic" models so maybe it allows multiple Screen instances each with multiple Workspaces and so on like above. Maybe the problem is that Screen is referring to two things now. Both the hardware screen and an object above the Workspace but below the global level that's why it seems to go both below and above Workspace. Could it be split or a new object introduced so that Screen refers to the hardware screen below Workspaces and another object (maybe WindowManager or something like that) that encapsulates things that should be above Workspace but below w_global? Then Type 2 means we may have multiple WindowManager objects each with their own Workspaces, Screens and so on like in the above models.

I'm mostly guessing here but I hope it may help you to find a better solution.

Regards,
BALATON Zoltan

Reply via email to