Can You Manage Windows?

Months of work are finally paying off. The window manager is almost complete -- only small stuff like not allowing windows to be moved or resized, window alignment and a few BWindow flags, focus follow mouse (and the bugs I did not found so far :-), or things that slipped past me) remain to be implemented. We have support for all kinds of windows specified in the BeBook: Normal, Floating App/Subset/All, Modal App/Subset/All windows. Beside those, I added support for 2 kinds of windows: one is used by Tracker and it is the backmost window and the other one will be available only for the system -- it will have focus and will be above ALL other windows.

Workspace support has also been implemented. One can move a window from one workspace to another in an app by calling BWindow::SetWorkspaces() or just by holding its tab and changing workspaces.

Here are some pictures of the window manager in action. The number on the left of window name represents application's team_id:

1 App - 3 Normal Windows Here you can see a typical BApplication having 3 normal windows. They are arranged in the order in which they were shown on the screen.
Here we have first selected window no. 2 and then window no. 1
2 BApplications, each one having 3 normal windows.
Regular window #594 was sent to the back with a right click.

Next, we have 4 workspaces and put 2 windows workspaces 1, 2, and 3. They were moved by holding window tab and changing workspaces with the keyboard.

Here we have 2 applications each one having a normal, a floating app and a modal app. You can observe there are no floating windows around because we first have to close the modal app windows which block access to the normal windows below. In this image I am trying to select (actually moving) window "675: NormalWindow" but the modal "675: Modal Window" stays in front having focus.
I closed "675: Modal Window", next in front is "675: Normal Window" and because of that application's floating window pops in front.
Here I have selected the normal window from 677 team, and as you can see the floating window automatically disappeared and because application 677 has a modal window, that pops in front of the normal window that I have tried to select and catches the focus too.
Closed the 677 modal and moved 677 normal window in workspace 2. The floating window automatically appears.
In the picture above we have 2 applications each having a normal, a modal app and a floating all window.
You can see the floating all windows are above modal app windows and will stay there when selecting any kind of window. Here I'm selecting "699: NormalWindow1" but focus goes to "699: ModalWindow" which is/pops in front but it's behind those floating all windows.
Yes, yes, there are some problems with decorator highlighting. R5 has some of these too. :-P
Floating all windows are visible in all workspaces.
And finally, here goes a window with some widgets in it. Yes, those are real. They work, but to a certain extent. :)

The window manager is not the only thing that got to work on app_server, Stephan Assmus has done A LOT of work into bringing instruction clipping and speed in drawing process. We really should be giving him a big THANKS! for finally having that part of app_server in place. Also let's not forget about Michael Lotz who is tying the server to the real hardware. :-) OK, that's it for now. I hope we put a smile on your face. :-)

bye,
Adi.