virtual void EmitBoundsChanged(Accessible* obj, Rect<> rect) = 0;
/**
+ * @brief Emits org.a11y.atspi.Event.Window.PostRender on the AT-SPI bus.
+ *
+ * @param[in] obj The Accessible sender object
+ *
+ * The sender of this event is expected to be an Accessible object that
+ * represents a top-level window.
+ *
+ * The actual number of events emitted during a given time interval may be smaller
+ * than the number of calls to this method, but at least one is guaranteed.
+ */
+ virtual void EmitPostRender(Accessible *obj) = 0;
+
+ /**
* @brief Emits key event on at-spi bus.
*
* Screen-reader might receive this event and reply, that given keycode is consumed. In that case
void OnPostRender()
{
- Accessibility::Bridge::GetCurrentBridge()->Emit(Accessibility::Accessible::Get(Self()), Accessibility::WindowEvent::POST_RENDER);
+ Accessibility::Bridge::GetCurrentBridge()->EmitPostRender(this);
}
-
}; // AdaptorAccessible
using AdaptorAccessiblesType = std::unordered_map<const Dali::RefObject*, std::unique_ptr<AdaptorAccessible> >;
{
BOUNDS_CHANGED, ///< Bounds changed
SET_OFFSET, ///< Set offset
+ POST_RENDER, ///< Post render
};
// Custom specialization of std::hash
});
}
+void BridgeObject::EmitPostRender(Accessible *obj)
+{
+ AddCoalescableMessage(CoalescableMessages::POST_RENDER, obj, 0.5f, [=]() {
+ Emit(obj, WindowEvent::POST_RENDER);
+ });
+}
+
void BridgeObject::EmitCursorMoved(Accessible* obj, unsigned int cursorPosition)
{
if(!IsUp() || obj->IsHidden() || obj->GetSuppressedEvents()[AtspiEvent::TEXT_CARET_MOVED])
Accessible::GetInterfaceName(AtspiInterface::EVENT_OBJECT),
"ScrollFinished",
{"", "root"});
-}
\ No newline at end of file
+}
void EmitBoundsChanged(Dali::Accessibility::Accessible* obj, Dali::Rect<> rect) override;
/**
+ * @copydoc Dali::Accessibility::Bridge::EmitPostRender()
+ */
+ void EmitPostRender(Dali::Accessibility::Accessible* obj) override;
+
+ /**
* @copydoc Dali::Accessibility::Bridge::EmitMovedOutOfScreen()
*/
void EmitMovedOutOfScreen(Dali::Accessibility::Accessible* obj, Dali::Accessibility::ScreenRelativeMoveType type) override;
{
}
+ void EmitPostRender(Accessibility::Accessible *obj) override
+ {
+ }
+
Accessibility::Consumed Emit(Accessibility::KeyEventType type, unsigned int keyCode, const std::string& keyName, unsigned int timeStamp, bool isText) override
{
return Accessibility::Consumed::YES;