diff --git a/src/kits/interface/Window.cpp b/src/kits/interface/Window.cpp index 2adfbde60a..7ce5ac335f 100644 --- a/src/kits/interface/Window.cpp +++ b/src/kits/interface/Window.cpp @@ -1868,14 +1868,16 @@ status_t BWindow::GetWindowAlignment(window_alignment* mode, uint32 BWindow::Workspaces() const { - uint32 workspaces; + int32 rCode; + uint32 workspaces; const_cast(this)->Lock(); fLink->StartMessage( AS_GET_WORKSPACES ); fLink->Flush(); - fLink->GetNextReply( (int32*)&workspaces ); + fLink->GetNextReply(&rCode); + fLink->Read(&workspaces); const_cast(this)->Unlock(); - +// TODO: shouldn't we cache? return workspaces; } @@ -1883,10 +1885,13 @@ uint32 BWindow::Workspaces() const void BWindow::SetWorkspaces(uint32 workspaces) { +// TODO: don't forget about Tracker's background window. + if (fFeel != B_NORMAL_WINDOW_FEEL) + return; Lock(); - fLink->StartMessage( AS_SET_WORKSPACES ); - fLink->Attach( (int32)workspaces ); + fLink->StartMessage(AS_SET_WORKSPACES); + fLink->Attach(workspaces); fLink->Flush(); Unlock(); }