diff --git a/src/preferences/backgrounds/Backgrounds.cpp b/src/preferences/backgrounds/Backgrounds.cpp index 94b1b7887e..1750b57169 100644 --- a/src/preferences/backgrounds/Backgrounds.cpp +++ b/src/preferences/backgrounds/Backgrounds.cpp @@ -20,26 +20,28 @@ static const char* kSignature = "application/x-vnd.Haiku-Backgrounds"; class BackgroundsWindow : public BWindow { - public: - BackgroundsWindow(); +public: + BackgroundsWindow(); - void RefsReceived(BMessage* message); + void RefsReceived(BMessage* message); - protected: - virtual bool QuitRequested(); - virtual void WorkspaceActivated(int32 oldWorkspaces, bool active); +protected: + virtual bool QuitRequested(); + virtual void WorkspaceActivated(int32 oldWorkspaces, + bool active); - BackgroundsView* fBackgroundsView; + BackgroundsView* fBackgroundsView; }; class BackgroundsApplication : public BApplication { - public: - BackgroundsApplication(); - virtual void RefsReceived(BMessage* message); +public: + BackgroundsApplication(); + virtual void MessageReceived(BMessage* message); + virtual void RefsReceived(BMessage* message); - private: - BackgroundsWindow* fWindow; +private: + BackgroundsWindow* fWindow; }; @@ -55,6 +57,20 @@ BackgroundsApplication::BackgroundsApplication() } +void +BackgroundsApplication::MessageReceived(BMessage* message) +{ + switch (message->what) { + case B_SILENT_RELAUNCH: + fWindow->Activate(); + break; + default; + BApplication::MessageReceived(message); + break; + } +} + + void BackgroundsApplication::RefsReceived(BMessage* message) { @@ -88,6 +104,7 @@ void BackgroundsWindow::RefsReceived(BMessage* message) { fBackgroundsView->RefsReceived(message); + Activate(); }