From 190b4fa4efb5613077e511d692841b8d5c4873c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Wed, 12 Apr 2006 16:52:41 +0000 Subject: [PATCH] hopefully implemented makedefault in Workspace::SetColor() git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17113 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/Desktop.cpp | 21 +++++++++++++++++++++ src/servers/app/Desktop.h | 1 + src/servers/app/Workspace.cpp | 3 ++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index b080a966d0..4927d63a15 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -657,6 +657,27 @@ Desktop::RedrawBackground() } +/*! + \brief Store the workspace configuration +*/ +void +Desktop::StoreWorkspaceConfiguration(Workspace::Private *workspace) +{ + // store settings + for (int32 index = 0; index < 32; index++) { + if (&fWorkspaces[index] == workspace) { + const BMessage *oldSettings = fSettings->WorkspacesMessage(index); + BMessage settings; + if (oldSettings) + settings = *oldSettings; + workspace->StoreConfiguration(settings); + fSettings->Save(kWorkspacesSettings); + break; + } + } +} + + void Desktop::UpdateWorkspaces() { diff --git a/src/servers/app/Desktop.h b/src/servers/app/Desktop.h index b876f9ef5a..ba9ac4bf3a 100644 --- a/src/servers/app/Desktop.h +++ b/src/servers/app/Desktop.h @@ -163,6 +163,7 @@ class Desktop : public MessageLooper, public ScreenOwner { { return fBackgroundRegion; } void RedrawBackground(); + void StoreWorkspaceConfiguration(Workspace::Private *workspace); void MinimizeApplication(team_id team); void BringApplicationToFront(team_id team); diff --git a/src/servers/app/Workspace.cpp b/src/servers/app/Workspace.cpp index 30d814c244..1a7dc144e6 100644 --- a/src/servers/app/Workspace.cpp +++ b/src/servers/app/Workspace.cpp @@ -105,9 +105,10 @@ Workspace::SetColor(const RGBColor& color, bool makeDefault) if (color == Color()) return; - // TODO: support makeDefault fWorkspace.SetColor(color); fDesktop.RedrawBackground(); + if (makeDefault) + fDesktop.StoreWorkspaceConfiguration(&fWorkspace); }