diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index 86b3240197..c11c4c92af 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -663,8 +663,11 @@ Desktop::RedrawBackground() void Desktop::StoreWorkspaceConfiguration(int32 index) { + const BMessage *oldSettings = fSettings->WorkspacesMessage(index); // store settings BMessage settings; + if (oldSettings) + settings = *oldSettings; fWorkspaces[index].StoreConfiguration(settings); fSettings->SetWorkspacesMessage(index, settings); fSettings->Save(kWorkspacesSettings); diff --git a/src/servers/app/Workspace.cpp b/src/servers/app/Workspace.cpp index c67e9ef1fc..99d0de1221 100644 --- a/src/servers/app/Workspace.cpp +++ b/src/servers/app/Workspace.cpp @@ -54,12 +54,13 @@ Workspace::Private::RestoreConfiguration(const BMessage& settings) /*! - \brief Store the workspace configuration in an empty message + \brief Store the workspace configuration in a message */ void Workspace::Private::StoreConfiguration(BMessage& settings) { rgb_color color = fColor.GetColor32(); + settings.RemoveName("color"); settings.AddInt32("color", *(int32 *)&color); }