From ea3e78c63860879e58030b6b01a3bdfb8475871c Mon Sep 17 00:00:00 2001 From: Lars Op den Kamp Date: Thu, 12 Dec 2013 03:38:03 +0100 Subject: [PATCH] always call the SourceActivated() callback in CCECBusDevice::MarkAsActiveSource(), even when we were already active, and let clients handle dupes. this prevented the screensaver from being canceled in XBMC --- src/lib/devices/CECBusDevice.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/lib/devices/CECBusDevice.cpp b/src/lib/devices/CECBusDevice.cpp index 7c563ca..489ded2 100644 --- a/src/lib/devices/CECBusDevice.cpp +++ b/src/lib/devices/CECBusDevice.cpp @@ -1082,14 +1082,12 @@ void CCECBusDevice::MarkAsActiveSource(void) if ((*it)->GetLogicalAddress() != m_iLogicalAddress) (*it)->MarkAsInactiveSource(); - if (bWasActivated) - { - if (IsHandledByLibCEC()) - m_processor->SetActiveSource(true, false); - CCECClient *client = GetClient(); - if (client) - client->SourceActivated(m_iLogicalAddress); - } + if (bWasActivated && IsHandledByLibCEC()) + m_processor->SetActiveSource(true, false); + + CCECClient *client = GetClient(); + if (client) + client->SourceActivated(m_iLogicalAddress); } void CCECBusDevice::MarkAsInactiveSource(bool bClientUnregistered /* = false */) -- 2.34.1