AFAIK those functions are in libbe.so, and since we will rewrite it, I don't see why we couldn't "virtualise" them. That is: // in libbe: // the screen on which that app was opened (same way as for the workspace) int current_screen; //in the init code: current_screen = get_current_screen_id(); void activate_workspace(int32 workspace) { activate_workspace_on_screen(current_screen, workspace); } int32 current_workspace(void) { return current_workspace_on_screen(current_screen); } So the app_server would have an screen indexed list of workspace. 2 possibilities: - each screen has its own workspace counts (each start at 0) [0 .. 4] [0 .. 7] [0 .. 3] - the screen share the same workspace list: [0 .. 4][5 .. 7][8 .. 31] with the advantage of not preventing an app from accessing other screens just by moving a window to another workspace. Of course there are some side-effects on this... if we set the workspaces flag of a window to FFFFFFFF, it will be displayed on the 2 monitors at the same time, _but_ the normal BeOS apps aren't designed to have the drawing code called for different workspaces at the same time (without notifying it of a workspace change)... That's becoming tricky =) I'd like to do it this way, but... Anyway for now we have other things to do :^) I really hope I'll be able to get into it Real Soon Now (tm) (that is I hope by the end of Feb, when I won't have courses anymore, I hope I'll have much more time for coding) En réponse à philippe.houdoin@xxxxxxx: [snip] > But we have only one B_CURRENT_WORKSPACE (from > http://bang.dhs.org/be/bebook/The%20Interface%20Kit/functions.html) : > > ------------- > void activate_workspace(int32 workspace) > int32 current_workspace(void) > > These functions set and return the active workspace, the one that's > currently displayed on-screen. The workspace is identified by an index, > 0-based.