diff options
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStackSupervisor.java | 2 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/TaskPositioner.java | 20 | 
2 files changed, 14 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 98b6ee6d2402..3a368ac59369 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -3091,7 +3091,7 @@ public final class ActivityStackSupervisor implements DisplayListener {          Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "am.resizeTask_" + task.taskId);          final Configuration overrideConfig =  task.updateOverrideConfiguration(bounds); -        // This variable holds information whether the configuration didn't change in a signficant +        // This variable holds information whether the configuration didn't change in a significant          // way and the activity was kept the way it was. If it's false, it means the activity had          // to be relaunched due to configuration change.          boolean kept = true; diff --git a/services/core/java/com/android/server/wm/TaskPositioner.java b/services/core/java/com/android/server/wm/TaskPositioner.java index 9da7406e8d3c..290c2eaf0bf3 100644 --- a/services/core/java/com/android/server/wm/TaskPositioner.java +++ b/services/core/java/com/android/server/wm/TaskPositioner.java @@ -146,13 +146,18 @@ class TaskPositioner implements DimLayer.DimLayerUser {                          }                          synchronized (mService.mWindowMap) {                              mDragEnded = notifyMoveLocked(newX, newY); +                            mTask.getBounds(mTmpRect); +                        } +                        if (!mTmpRect.equals(mWindowDragBounds)) { +                            Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, +                                    "wm.TaskPositioner.resizeTask"); +                            try { +                                mService.mActivityManager.resizeTask( +                                        mTask.mTaskId, mWindowDragBounds, RESIZE_MODE_USER); +                            } catch (RemoteException e) { +                            } +                            Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER);                          } -                        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "wm.TaskPositioner.resizeTask"); -                        try { -                            mService.mActivityManager.resizeTask( -                                    mTask.mTaskId, mWindowDragBounds, RESIZE_MODE_USER); -                        } catch(RemoteException e) {} -                        Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER);                      } break;                      case MotionEvent.ACTION_UP: { @@ -171,11 +176,12 @@ class TaskPositioner implements DimLayer.DimLayerUser {                  }                  if (mDragEnded) { +                    final boolean wasResizing = mResizing;                      synchronized (mService.mWindowMap) {                          endDragLocked();                      }                      try { -                        if (mResizing) { +                        if (wasResizing) {                              // We were using fullscreen surface during resizing. Request                              // resizeTask() one last time to restore surface to window size.                              mService.mActivityManager.resizeTask(  |