已开启
清理windowFocusEventMap_逻辑 #2711
taojuncun创建于 22 天前
清理windowFocusEventMap_逻辑 #2711
已开启
共 1 个文件变更+8-0
| @@ -1171,6 +1171,7 @@ RetError AccessibleAbilityManagerService::DeregisterElementOperator(int32_t wind | |||
| 1171 | RemoveTreeDeathRecipient(windowId, treeId, connection); | 1171 | RemoveTreeDeathRecipient(windowId, treeId, connection); |
| 1172 | } | 1172 | } |
| 1173 | accountData->RemoveAccessibilityWindowConnection(windowId); | 1173 | accountData->RemoveAccessibilityWindowConnection(windowId); |
| 1174 | + windowFocusEventMap_.Erase(windowId); | ||
| 1174 | }, "TASK_DEREGISTER_ELEMENT_OPERATOR"); | 1175 | }, "TASK_DEREGISTER_ELEMENT_OPERATOR"); |
| 1175 | return RET_OK; | 1176 | return RET_OK; |
| 1176 | } | 1177 | } |
| @@ -1201,6 +1202,7 @@ RetError AccessibleAbilityManagerService::DeregisterElementOperator(int32_t wind | |||
| 1201 | // remove connection when all proxy and children tree proxy deregistered | 1202 | // remove connection when all proxy and children tree proxy deregistered |
| 1202 | if (connection->GetProxy() == nullptr && connection->GetCardProxySize() == 0) { | 1203 | if (connection->GetProxy() == nullptr && connection->GetCardProxySize() == 0) { |
| 1203 | accountData->RemoveAccessibilityWindowConnection(windowId); | 1204 | accountData->RemoveAccessibilityWindowConnection(windowId); |
| 1205 | + windowFocusEventMap_.Erase(windowId); | ||
| 1204 | } | 1206 | } |
| 1205 | Singleton<AccessibilityWindowManager>::GetInstance().RemoveTreeIdWindowIdPair(treeId); | 1207 | Singleton<AccessibilityWindowManager>::GetInstance().RemoveTreeIdWindowIdPair(treeId); |
| 1206 | }, "TASK_DEREGISTER_ELEMENT_OPERATOR"); | 1208 | }, "TASK_DEREGISTER_ELEMENT_OPERATOR"); |
| @@ -1536,6 +1538,9 @@ RetError AccessibleAbilityManagerService::InnerDisableAbility(const std::string | |||
| 1536 | accountData->SetAbilityAutoStartState(name, false); | 1538 | accountData->SetAbilityAutoStartState(name, false); |
| 1537 | accountData->RemoveConnectingA11yAbility(name); | 1539 | accountData->RemoveConnectingA11yAbility(name); |
| 1538 | accountData->UpdateAbilities(); | 1540 | accountData->UpdateAbilities(); |
| 1541 | + if (accountData->GetEnabledAbilities().empty()) { | ||
| 1542 | + windowFocusEventMap_.Clear(); | ||
| 1543 | + } | ||
| 1539 | return RET_OK; | 1544 | return RET_OK; |
| 1540 | } | 1545 | } |
| 1541 | 1546 | ||
| @@ -1608,6 +1613,9 @@ RetError AccessibleAbilityManagerService::DisableUITestAbility() | |||
| 1608 | std::bind(&AccessibilityAccountData::RemoveUITestClient, accountData, connection, UI_TEST_BUNDLE_NAME); | 1613 | std::bind(&AccessibilityAccountData::RemoveUITestClient, accountData, connection, UI_TEST_BUNDLE_NAME); |
| 1609 | handler_->PostTask(removeUITestClientFunc, "RemoveUITestClient"); | 1614 | handler_->PostTask(removeUITestClientFunc, "RemoveUITestClient"); |
| 1610 | accountData->RemoveEnabledAbility(uiTestUri); | 1615 | accountData->RemoveEnabledAbility(uiTestUri); |
| 1616 | + if (accountData->GetEnabledAbilities().empty()) { | ||
| 1617 | + windowFocusEventMap_.Clear(); | ||
| 1618 | + } | ||
| 1611 | syncPromise->set_value(RET_OK); | 1619 | syncPromise->set_value(RET_OK); |
| 1612 | }, "TASK_DISABLE_UI_TEST_ABILITIES"); | 1620 | }, "TASK_DISABLE_UI_TEST_ABILITIES"); |
| 1613 | 1621 | ||