Fixed bug in detecting screen saver activation. Was using || instead
of && in conditional.
This commit is contained in:
parent
ca984acb91
commit
52d8edb747
|
@ -239,7 +239,7 @@ CXWindowsScreen::open()
|
||||||
updateScreenShape();
|
updateScreenShape();
|
||||||
|
|
||||||
// initialize the screen saver
|
// initialize the screen saver
|
||||||
m_atomScreensaver = XInternAtom(m_display, "SCREENSAVER", False);
|
m_atomScreensaver = XInternAtom(m_display, "SYNERGY_SCREENSAVER", False);
|
||||||
m_screensaver = new CXWindowsScreenSaver(this, m_display);
|
m_screensaver = new CXWindowsScreenSaver(this, m_display);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -634,7 +634,7 @@ CXWindowsScreen::onPreDispatch(CEvent* event)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ClientMessage:
|
case ClientMessage:
|
||||||
if (xevent->xclient.message_type == m_atomScreensaver ||
|
if (xevent->xclient.message_type == m_atomScreensaver &&
|
||||||
xevent->xclient.format == 32) {
|
xevent->xclient.format == 32) {
|
||||||
// screen saver activation/deactivation event
|
// screen saver activation/deactivation event
|
||||||
m_eventHandler->onScreensaver(xevent->xclient.data.l[0] != 0);
|
m_eventHandler->onScreensaver(xevent->xclient.data.l[0] != 0);
|
||||||
|
|
|
@ -50,6 +50,8 @@ CXWindowsScreenSaver::CXWindowsScreenSaver(
|
||||||
"ACTIVATE", False);
|
"ACTIVATE", False);
|
||||||
m_atomScreenSaverDeactivate = XInternAtom(m_display,
|
m_atomScreenSaverDeactivate = XInternAtom(m_display,
|
||||||
"DEACTIVATE", False);
|
"DEACTIVATE", False);
|
||||||
|
m_atomSynergyScreenSaver = XInternAtom(m_display,
|
||||||
|
"SYNERGY_SCREENSAVER", False);
|
||||||
|
|
||||||
// create dummy window to receive xscreensaver responses. this
|
// create dummy window to receive xscreensaver responses. this
|
||||||
// shouldn't be necessary (we should be able to send responses
|
// shouldn't be necessary (we should be able to send responses
|
||||||
|
@ -263,7 +265,7 @@ CXWindowsScreenSaver::sendNotify(bool activated)
|
||||||
event.xclient.type = ClientMessage;
|
event.xclient.type = ClientMessage;
|
||||||
event.xclient.display = m_display;
|
event.xclient.display = m_display;
|
||||||
event.xclient.window = m_notify;
|
event.xclient.window = m_notify;
|
||||||
event.xclient.message_type = m_atomScreenSaver;
|
event.xclient.message_type = m_atomSynergyScreenSaver;
|
||||||
event.xclient.format = 32;
|
event.xclient.format = 32;
|
||||||
event.xclient.data.l[0] = activated ? 1 : 0;
|
event.xclient.data.l[0] = activated ? 1 : 0;
|
||||||
event.xclient.data.l[1] = 0;
|
event.xclient.data.l[1] = 0;
|
||||||
|
@ -342,7 +344,7 @@ void
|
||||||
CXWindowsScreenSaver::setXScreenSaverActive(bool activated)
|
CXWindowsScreenSaver::setXScreenSaverActive(bool activated)
|
||||||
{
|
{
|
||||||
if (m_xscreensaverActive != activated) {
|
if (m_xscreensaverActive != activated) {
|
||||||
LOG((CLOG_DEBUG "xscreensaver %s", activated ? "activated" : "deactivated"));
|
LOG((CLOG_DEBUG "xscreensaver %s on window 0x%08x", activated ? "activated" : "deactivated", m_xscreensaver));
|
||||||
m_xscreensaverActive = activated;
|
m_xscreensaverActive = activated;
|
||||||
sendNotify(activated);
|
sendNotify(activated);
|
||||||
}
|
}
|
||||||
|
|
|
@ -132,6 +132,7 @@ private:
|
||||||
Atom m_atomScreenSaverVersion;
|
Atom m_atomScreenSaverVersion;
|
||||||
Atom m_atomScreenSaverActivate;
|
Atom m_atomScreenSaverActivate;
|
||||||
Atom m_atomScreenSaverDeactivate;
|
Atom m_atomScreenSaverDeactivate;
|
||||||
|
Atom m_atomSynergyScreenSaver;
|
||||||
|
|
||||||
// built-in screen saver settings
|
// built-in screen saver settings
|
||||||
int m_timeout;
|
int m_timeout;
|
||||||
|
|
Loading…
Reference in New Issue