Added server support for activate_workspace(). Looks like it's not doing anything, though SetActiveWorkspace() returns true....

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13103 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2005-06-13 22:11:29 +00:00
parent eef16dda7d
commit 3a27ae791e
2 changed files with 30 additions and 29 deletions
+3 -4
View File
@@ -574,13 +574,12 @@ set_workspace_count(int32 count)
_IMPEXP_BE int32
current_workspace()
{
int32 index = 1;
int32 index = 0;
BAppServerLink link;
int32 code;
link.StartMessage(AS_CURRENT_WORKSPACE);
link.FlushWithReply(&code);
if(code==SERVER_TRUE)
link.StartMessage(AS_CURRENT_WORKSPACE);
if (link.FlushWithReply(&code) == B_OK && code == SERVER_TRUE)
link.Read<int32>(&index);
return index;
+27 -25
View File
@@ -657,17 +657,35 @@ ServerApp::DispatchMessage(int32 code, LinkMsgReader &link)
break;
}
case AS_CURRENT_WORKSPACE:
{
STRACE(("ServerApp %s: get current workspace\n", fSignature.String()));
// TODO: Locking this way is not nice
RootLayer *root = gDesktop->ActiveRootLayer();
root->Lock();
fLink.StartMessage(SERVER_TRUE);
fLink.Attach<int32>(root->ActiveWorkspaceIndex());
fLink.Flush();
root->Unlock();
break;
}
case AS_ACTIVATE_WORKSPACE:
{
STRACE(("ServerApp %s: Activate Workspace UNIMPLEMETED\n",fSignature.String()));
// Attached data
// 1) int32 workspace index
// Error-checking is done in ActivateWorkspace, so this is a safe call
int32 workspace;
link.Read<int32>(&workspace);
STRACE(("ServerApp %s: activate workspace\n", fSignature.String()));
// TODO: See above
int32 index;
link.Read<int32>(&index);
RootLayer *root = gDesktop->ActiveRootLayer();
root->Lock();
root->SetActiveWorkspace(index);
root->Unlock();
// no reply
break;
}
@@ -1773,23 +1791,7 @@ printf("ServerApp %s: AS_SCREEN_GET_MODE\n", fSignature.String());
root->Unlock();
break;
}
case AS_CURRENT_WORKSPACE:
{
STRACE(("ServerApp %s: get current workspace\n", fSignature.String()));
// TODO: See above
RootLayer *root = gDesktop->ActiveRootLayer();
root->Lock();
fLink.StartMessage(SERVER_TRUE);
fLink.Attach<int32>(root->ActiveWorkspaceIndex());
fLink.Flush();
root->Unlock();
break;
}
default:
printf("ServerApp %s received unhandled message code offset %s\n",
fSignature.String(), MsgCodeToBString(code).String());