Index: athena/resource_manager/resource_manager_impl.cc |
diff --git a/athena/resource_manager/resource_manager_impl.cc b/athena/resource_manager/resource_manager_impl.cc |
index 4036ebc20a74f9495e47aa1ea066618d30a03146..785744f543b4ecab7a52859c0779643d39f89af9 100644 |
--- a/athena/resource_manager/resource_manager_impl.cc |
+++ b/athena/resource_manager/resource_manager_impl.cc |
@@ -176,8 +176,10 @@ void ResourceManagerImpl::OnOverviewModeEnter() { |
void ResourceManagerImpl::OnOverviewModeExit() { |
in_overview_mode_ = false; |
- // Reorder the activities. |
+ // Reorder the activities and manage the resources again since an order change |
+ // might have caused a visibility change. |
UpdateActivityOrder(); |
+ ManageResource(); |
} |
void ResourceManagerImpl::OnSplitViewModeEnter() { |
@@ -287,11 +289,13 @@ void ResourceManagerImpl::ManageResource() { |
Activity::ACTIVITY_INVISIBLE; |
// Only change the state when it changes. Note that when the memory |
// pressure is critical, only the primary activities (1 or 2) are made |
- // visible. Furthermore, in relaxed mode we only want to make visible. |
+ // visible. Furthermore, in relaxed mode we only want to turn visible, |
+ // never invisible. |
if (visiblity_state != state && |
(current_memory_pressure_ != MEMORY_PRESSURE_LOW || |
- visiblity_state == Activity::ACTIVITY_VISIBLE)) |
+ visiblity_state == Activity::ACTIVITY_VISIBLE)) { |
activity->SetCurrentState(visiblity_state); |
+ } |
} |
// See which index we should handle next. |