02-18-2006 13:37
I've found that when running in lower-resolution modes on various machines (PC, Macintosh) that often dialog windows will not recognize the current workspace and will run off beneath the chat window. This isn't so much a problem as a minor annoyance.

However it opens up avenues for suggestions on how to improve the functionality of the window system in SL.

The window system in SL is crudely functional and reminds me in many ways of CDE or Motif. In any case there is room for useability to be added.

Herein I suggest a list of features and detail how the addition would add to the user experience.

-Docking windows
This will allow users to stick windows to edges and corners of the screen. If the user drags the window into a pre-defined distance from a screen edge, the window will cling to it and stay there. This will allow users to place windows more easilly outside their view radius, and will work exceptionally well when combined with...

-Auto-hide docked windows
This feature will cause windows which are docked to the side or corner of the screen to disappear if the cursor is moved off of them. There will be a small "hint" border around the window visible at the inner edge of the window at the side of the screen to remind the user that the window is there. When the user moves the cursor into the "hint" area, the window will re-appear. This feature when combined with docking (detailed above) will allow the user to keep their focus on the action within their view radius instead of having to click a toggle button or use a hotkey to invoke a window.

-Sticky windows
This feature will allow users to group windows by dragging them close to each other so that they "stick together" like magnets. With this action invoked any windows which are "stuck" to each other will dock and auto-hide as groups. This would allow users to group windows for related tasks and auto-hide them together.

For example, you could stick the inventory and edit windows together when working on a building project. This would allow the builder to select and apply a texture, then mouse away from the window to hide both windows and resume working on the building project.

-Remember window position
This feature will cause windows to remain in the viewport when teleporting and restarting the application. The dialogs should also remember the last state. For example, if a user has selected an item in a nested folder in the inventory, when they teleport or restart SL the cursor should still rest on the last item selected in the inventory.

-Standardize inventory view
The inventory view should be more like Directory Opus, Windows Explorer or Konqueror. The most important feature for me (and this is a non-objective statement) is a pane on the left for folders, then a pane on the right for items within the folder. Selecting an item on the left displays the nested items on the right. This shouldn't require a second window.

-Thinner window decorations
The window borders, widgets and text are quite fat. They take up a lot of space that could be used for other things, like retaining the user's focus on the viewport. Make them smaller by default or adjust them based on the current resolution.

-Implementation of a plugin architecture
This may need to wait until SL goes open source. It would be quite nice to be able to add snap-in features for interaction with the local machine. For example, I would like to have a docked, auto-hide window to control my media player. This could be done on a closed-source platform by providing an API.

As usual I welcome feedback on my input.