From: Artur Świgoń Date: Thu, 4 Nov 2021 19:11:39 +0000 (+0100) Subject: [AT-SPI] Add Bridge::{Enabled,Disabled}Signal() X-Git-Tag: dali_2.0.52~1^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git;a=commitdiff_plain;h=93492c5bc9f16bc609650f7ec06b89aacafacd64 [AT-SPI] Add Bridge::{Enabled,Disabled}Signal() These signals are emitted whenever the AT-SPI bridge is turned on or off. Note that `EnabledSignal` is only emitted for the first `ForceUp` call, i.e. the one that returns `ForceUpResult::JUST_STARTED` (and a similar story for `DisabledSignal`). These signals are necessarily static members of `Bridge`, to guarantee that they are delivered to consumers even in those use cases in which the object returned by `GetCurrentBridge()` changes during the lifetime of the application. Change-Id: Id266b7ed064b8b2690e093804c3f7d23ac4347ce --- diff --git a/dali/devel-api/adaptor-framework/accessibility-impl.h b/dali/devel-api/adaptor-framework/accessibility-impl.h index dfe1f6b..34cc946 100644 --- a/dali/devel-api/adaptor-framework/accessibility-impl.h +++ b/dali/devel-api/adaptor-framework/accessibility-impl.h @@ -364,6 +364,16 @@ struct DALI_ADAPTOR_API Bridge */ static void EnableAutoInit(); + static Signal& EnabledSignal() + { + return mEnabledSignal; + } + + static Signal& DisabledSignal() + { + return mDisabledSignal; + } + protected: struct Data { @@ -384,6 +394,9 @@ protected: inline static AutoInitState mAutoInitState = AutoInitState::ENABLED; + inline static Signal mEnabledSignal; + inline static Signal mDisabledSignal; + /** * @brief Registers accessible object to be known in bridge object. * diff --git a/dali/internal/accessibility/bridge/bridge-impl.cpp b/dali/internal/accessibility/bridge/bridge-impl.cpp index a4144ab..181b440 100644 --- a/dali/internal/accessibility/bridge/bridge-impl.cpp +++ b/dali/internal/accessibility/bridge/bridge-impl.cpp @@ -208,6 +208,8 @@ public: } mData->mCurrentlyHighlightedActor = {}; mData->mHighlightActor = {}; + + mDisabledSignal.Emit(); } mHighlightedActor = {}; mHighlightClearAction = {}; @@ -289,6 +291,9 @@ public: { EmitActivate(); } + + mEnabledSignal.Emit(); + return ForceUpResult::JUST_STARTED; }