[openbeos] Re: OBOS Poll: Multiple Monitor Support

  • From: François Revol <revol@xxxxxxx>
  • To: openbeos@xxxxxxxxxxxxx
  • Date: Wed, 09 Jan 2002 22:31:46 +0100 (MET)

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. 




Other related posts: