Skip to content

Commit 23a8f69

Browse files
committed
Add a fallback to let mplayer control the screensaver
Bug: #1056 Signed-off-by: Alexander Golubev <[email protected]>
1 parent bed40ac commit 23a8f69

File tree

9 files changed

+37
-1
lines changed

9 files changed

+37
-1
lines changed

src/core.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1851,7 +1851,11 @@ void Core::startMplayer( QString file, double seek ) {
18511851
#ifndef USE_POWERSAVING
18521852
proc->setOption("stop-xscreensaver", pref->disable_screensaver);
18531853
#else
1854-
proc->setOption("stop-xscreensaver", false);
1854+
if (screensaver->isValid()) {
1855+
proc->setOption("stop-xscreensaver", false);
1856+
} else { // fallback to let mplayer control the screensaver
1857+
proc->setOption("stop-xscreensaver", pref->disable_screensaver);
1858+
}
18551859
#endif
18561860
#endif
18571861

src/powersaving.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ PowerSaving::PowerSaving(QObject * parent)
3737
PowerSaving::~PowerSaving() {
3838
}
3939

40+
bool PowerSaving::isValid() {
41+
return interface->isValid();
42+
}
43+
4044
void PowerSaving::inhibit() {
4145
qDebug("PowerSaving::inhibit");
4246
QDBusReply<uint> reply = interface->call("Inhibit", "smplayer", "Playing media");

src/powersaving.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ class PowerSaving : public QObject
3232
PowerSaving(QObject * parent = 0);
3333
~PowerSaving();
3434

35+
bool isValid();
36+
3537
public slots:
3638
void inhibit();
3739
void uninhibit();

src/powersaving_mac.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ PowerSaving::PowerSaving(QObject * parent)
2929
PowerSaving::~PowerSaving() {
3030
}
3131

32+
bool PowerSaving::isValid() {
33+
return true;
34+
}
35+
3236
void PowerSaving::inhibit() {
3337
qDebug("PowerSaving::inhibit");
3438

src/powersaving_mac.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ class PowerSaving : public QObject
3131
PowerSaving(QObject * parent = 0);
3232
~PowerSaving();
3333

34+
bool isValid();
35+
3436
public slots:
3537
void inhibit();
3638
void uninhibit();

src/screensaver.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,14 @@ ScreenSaver::~ScreenSaver() {
4242
#endif
4343
}
4444

45+
bool ScreenSaver::isValid() {
46+
#ifdef Q_OS_WIN
47+
return win_screensaver->isValid();
48+
#else
49+
return power_saving->isValid();
50+
#endif
51+
}
52+
4553
void ScreenSaver::enable() {
4654
#ifdef Q_OS_WIN
4755
win_screensaver->enable();

src/screensaver.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ class ScreenSaver : public QObject
3232
ScreenSaver(QObject * parent = 0);
3333
~ScreenSaver();
3434

35+
bool isValid();
36+
3537
public slots:
3638
void enable();
3739
void disable();

src/winscreensaver.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,14 @@ WinScreenSaver::~WinScreenSaver() {
4848
#endif
4949
}
5050

51+
bool WinScreenSaver::isValid() {
52+
#ifndef Q_OS_OS2
53+
return true;
54+
#else
55+
return SSCore_TempDisable && SSCore_TempEnable;
56+
#endif
57+
}
58+
5159
void WinScreenSaver::retrieveState() {
5260
qDebug("WinScreenSaver::retrieveState");
5361

src/winscreensaver.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ class WinScreenSaver
3434
WinScreenSaver();
3535
~WinScreenSaver();
3636

37+
bool isValid();
38+
3739
void disable();
3840
void enable();
3941

0 commit comments

Comments
 (0)