diff --git a/src/prefs/appearance/APRView.cpp b/src/prefs/appearance/APRView.cpp index f1fcefb36a..10cba10965 100644 --- a/src/prefs/appearance/APRView.cpp +++ b/src/prefs/appearance/APRView.cpp @@ -181,6 +181,20 @@ void APRView::MessageReceived(BMessage *msg) switch(msg->what) { + case B_WORKSPACE_ACTIVATED: + { + BScreen screen; + rgb_color col=screen.DesktopColor(); + settings.ReplaceData("DESKTOP",(type_code)'RGBC', + &col,sizeof(rgb_color)); + + if(attrstring=="DESKTOP") + { + picker->SetValue(col); + colorwell->SetColor(col); + } + break; + } case DELETE_COLORSET: { // Construct the path and delete @@ -609,7 +623,7 @@ printf("Couldn't open file %s for read\n",path.String()); SetColorSetName(colorset_name->String()); BScreen screen; - rgb_color col=screen.GetDesktopColor(); + rgb_color col=screen.DesktopColor(); settings.ReplaceData("DESKTOP",(type_code)'RGBC', &col,sizeof(rgb_color)); diff --git a/src/prefs/appearance/APRWindow.cpp b/src/prefs/appearance/APRWindow.cpp index 99cac34adc..04866392c0 100644 --- a/src/prefs/appearance/APRWindow.cpp +++ b/src/prefs/appearance/APRWindow.cpp @@ -1,21 +1,23 @@ +#include #include "APRWindow.h" #include "APRView.h" #include "DecView.h" APRWindow::APRWindow(BRect frame) - : BWindow(frame, "Appearance", B_TITLED_WINDOW, B_NOT_RESIZABLE | B_NOT_ZOOMABLE ) + : BWindow(frame, "Appearance", B_TITLED_WINDOW, + B_NOT_RESIZABLE | B_NOT_ZOOMABLE, B_ALL_WORKSPACES ) { tabview=new BTabView(Bounds(),"TabView"); BTab *tab=NULL; - APRView *v=new APRView(Bounds(),"Colors",B_FOLLOW_ALL, B_WILL_DRAW); - tab=new BTab(v); - tabview->AddTab(v,tab); + colors=new APRView(Bounds(),"Colors",B_FOLLOW_ALL, B_WILL_DRAW); + tab=new BTab(colors); + tabview->AddTab(colors,tab); - DecView *dv=new DecView(Bounds(),"Decorator",B_FOLLOW_ALL, B_WILL_DRAW); - tab=new BTab(dv); - tabview->AddTab(dv,tab); + decorators=new DecView(Bounds(),"Decorator",B_FOLLOW_ALL, B_WILL_DRAW); + tab=new BTab(decorators); + tabview->AddTab(decorators,tab); AddChild(tabview); } @@ -25,3 +27,12 @@ bool APRWindow::QuitRequested() be_app->PostMessage(B_QUIT_REQUESTED); return(true); } + +void APRWindow::WorkspaceActivated(int32 wkspc, bool is_active) +{ + if(is_active) + { + BMessenger notifier(colors); + notifier.SendMessage(new BMessage(B_WORKSPACE_ACTIVATED)); + } +} diff --git a/src/prefs/appearance/APRWindow.h b/src/prefs/appearance/APRWindow.h index 6337c8b59d..494f9a1718 100644 --- a/src/prefs/appearance/APRWindow.h +++ b/src/prefs/appearance/APRWindow.h @@ -6,12 +6,18 @@ #include #include +class APRView; +class DecView; + class APRWindow : public BWindow { public: APRWindow(BRect frame); virtual bool QuitRequested(); + virtual void WorkspaceActivated(int32 wkspc, bool is_active); BTabView *tabview; + APRView *colors; + DecView *decorators; }; #endif