*/
virtual bool executeAndWaitForEvents(const Runnable *cmd, const A11yEvent type, const int timeout, const std::string packageName, std::shared_ptr<AccessibleNode> obj, const int count) = 0;
- /**
- * @brief Gets active application map.
- *
- * @return map (pure Atspi Node ptr(@AtspiAccessible), @AccessibleApplication)
- * @since_tizen 6.5
- */
- virtual std::map<AtspiAccessible *, std::shared_ptr<AccessibleApplication>> getActiveAppMap(void) = 0;
-
/**
* @brief Gets XML Document map.
*
*/
virtual bool executeAndWaitForEvents(const Runnable *cmd, const A11yEvent type, const int timeout, const std::string packageName, std::shared_ptr<AccessibleNode> obj, const int count) override;
- /**
- * @copydoc @AccessibleWatcher::getActiveAppMap()
- */
- virtual std::map<AtspiAccessible *, std::shared_ptr<AccessibleApplication>> getActiveAppMap(void) override;
-
/**
* @copydoc @AccessibleWatcher::getXMLDocMap()
*/
std::list<AtspiAccessible *> mActivatedWindowList;
std::list<AtspiAccessible *> mActivatedApplicationList;
std::set<AtspiAccessible *> mWindowSet;
- std::map<AtspiAccessible *, std::shared_ptr<AccessibleApplication>> mActiveAppMap;
std::map<std::string, std::shared_ptr<AurumXML>> mXMLDocMap;
static GThread *mEventThread;
static std::vector<std::shared_ptr<A11yEventInfo>> mEventQueue;
void AtspiAccessibleWatcher::appendApp(AtspiAccessibleWatcher *instance, AtspiAccessible *app, char *pkg)
{
LOGI("window activated in app(%s)", pkg);
- if (!instance->mActiveAppMap.count(app)) {
- LOGI("add activated window's app in map");
- instance->mActiveAppMap.insert(std::pair<AtspiAccessible *, std::shared_ptr<AccessibleApplication>>(app,
- std::make_shared<AtspiAccessibleApplication>(std::make_shared<AtspiAccessibleNode>(app))));
- }
- else {
- LOGI("app(%s) is already in map", pkg);
- }
-
if (mXMLSync)
{
std::string package(pkg);
void AtspiAccessibleWatcher::removeApp(AtspiAccessibleWatcher *instance, AtspiAccessible *app, char *pkg)
{
LOGI("window deactivate in app(%s)", pkg);
- if (instance->mActiveAppMap.count(app)) {
- LOGI("window deactivated delete app(%s) in map", pkg);
- instance->mActiveAppMap.erase(app);
- }
- else {
- LOGE("deactivated window's app(%s) is not in map", pkg);
- }
-
if (mXMLSync)
{
if (instance->mXMLDocMap.count(std::string(pkg))) {
if (name && app)
{
pkg = AtspiWrapper::Atspi_accessible_get_name(app, NULL);
- if (!strncmp(event->type, "window:activate", 15)) instance->appendApp(instance, app, pkg);
- else if (!strncmp(event->type, "window:deactivate", 16)) instance->removeApp(instance, app, pkg);
+ if (!strncmp(event->type, "window:create", 13)) instance->appendApp(instance, app, pkg);
+ else if (!strncmp(event->type, "window:activate", 15) && instance->mXMLDocMap.count(pkg) == 0) instance->appendApp(instance, app, pkg);
+ else if (!strncmp(event->type, "window:destroy", 14)) instance->removeApp(instance, app, pkg);
// To support focus skipped window
if (instance->isTv) {
return false;
}
-std::map<AtspiAccessible *, std::shared_ptr<AccessibleApplication>> AtspiAccessibleWatcher::getActiveAppMap(void)
-{
- return mActiveAppMap;
-}
-
std::map<std::string, std::shared_ptr<AurumXML>> AtspiAccessibleWatcher::getXMLDocMap(void)
{
LOGI("XMLsync: %s", (mXMLSync ? "TRUE" : "FALSE"));