[haiku-bugs] Re: [Haiku] #5938: Screensavers don't work in 'live cd'-mode

  • From: "idefix" <trac@xxxxxxxxxxxx>
  • Date: Tue, 29 Jun 2010 20:42:52 -0000

#5938: Screensavers don't work in 'live cd'-mode
------------------------------------+---------------------------------------
  Reporter:  idefix                 |       Owner:  korli         
      Type:  bug                    |      Status:  reopened      
  Priority:  normal                 |   Milestone:  R1            
 Component:  Add-Ons/Screen Savers  |     Version:  R1/Development
Resolution:                         |    Keywords:                
 Blockedby:                         |       Patch:  0             
  Platform:  All                    |    Blocking:                
------------------------------------+---------------------------------------

Comment(by idefix):

 I don't know if I understand you correctly, but in comment:8 I had
 something in mind like:
 {{{
 #!diff
 Index: src/preferences/screensaver/ScreenSaverWindow.cpp
 ===================================================================
 --- src/preferences/screensaver/ScreenSaverWindow.cpp   (revision 37304)
 +++ src/preferences/screensaver/ScreenSaverWindow.cpp   (working copy)
 @@ -365,6 +365,7 @@
                 }

                 case kMsgTestSaver:
 +               {
                         SaveState();
                         fSettings.Save();

 @@ -372,9 +373,28 @@

                         be_roster->StartWatching(BMessenger(this,
 this->Looper()),
                                 B_REQUEST_QUIT);
 -                       be_roster->Launch(SCREEN_BLANKER_SIG,
 &fSettings.Message(),
 -                               &fScreenSaverTestTeamId);
 +
 +                       if (be_roster->Launch(SCREEN_BLANKER_SIG,
 &fSettings.Message(),
 +                               &fScreenSaverTestTeamId) == B_OK)
 +                               break;
 +
 +                       // Try really hard to launch it. It's very likely
 that this fails,
 +                       // when we run from the CD and there is only an
 incomplete mime
 +                       // database for example...
 +                       BPath path;
 +                       if (find_directory(B_SYSTEM_BIN_DIRECTORY, &path)
 != B_OK
 +                               || path.Append("screen_blanker") != B_OK)
 {
 +
 path.SetTo("/boot/system/bin/screen_blanker");
 +                       }
 +                       BEntry entry(path.Path());
 +                       entry_ref ref;
 +                       if (entry.GetRef(&ref) == B_OK) {
 +                               be_roster->Launch(&ref,
 &fSettings.Message(),
 +                                       &fScreenSaverTestTeamId);
 +                       }
 +
                         break;
 +               }

                 case kMsgAddSaver:
                         fFilePanel->Show();
 }}}
 Which should fix the problem with the `Test` button in `ScreenSaver`
 (although I haven't test it).

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/5938#comment:10>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: