Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b3e0587 authored by Craig Mautner's avatar Craig Mautner Committed by Android (Google) Code Review
Browse files

Merge "Notify client of all window movements." into mnc-dev

parents fa1c1f97 4557c08c
Loading
Loading
Loading
Loading
+15 −13
Original line number Diff line number Diff line
@@ -9940,18 +9940,20 @@ public class WindowManagerService extends IWindowManager.Stub

                    final WindowStateAnimator winAnimator = w.mWinAnimator;

                    // If the window has moved due to its containing
                    // content frame changing, then we'd like to animate
                    // it.
                    if (w.mHasSurface && w.shouldAnimateMove()) {
                        // Frame has moved, containing content frame
                        // has also moved, and we're not currently animating...
                        // let's do something.
                    // If the window has moved due to its containing content frame changing, then
                    // notify the listeners and optionally animate it.
                    if (w.hasMoved()) {
                        // Frame has moved, containing content frame has also moved, and we're not
                        // currently animating... let's do something.
                        final int left = w.mFrame.left;
                        final int top = w.mFrame.top;
                        if ((w.mAttrs.privateFlags & PRIVATE_FLAG_NO_MOVE_ANIMATION) == 0) {
                            Animation a = AnimationUtils.loadAnimation(mContext,
                                    com.android.internal.R.anim.window_move_from_decor);
                            winAnimator.setAnimation(a);
                        winAnimator.mAnimDw = w.mLastFrame.left - w.mFrame.left;
                        winAnimator.mAnimDh = w.mLastFrame.top - w.mFrame.top;
                            winAnimator.mAnimDw = w.mLastFrame.left - left;
                            winAnimator.mAnimDh = w.mLastFrame.top - top;
                        }

                        //TODO (multidisplay): Accessibility supported only for the default display.
                        if (mAccessibilityController != null
@@ -9960,7 +9962,7 @@ public class WindowManagerService extends IWindowManager.Stub
                        }

                        try {
                            w.mClient.moved(w.mFrame.left, w.mFrame.top);
                            w.mClient.moved(left, top);
                        } catch (RemoteException e) {
                        }
                    }
+5 −8
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW;
import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
import static android.view.WindowManager.LayoutParams.LAST_SUB_WINDOW;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_COMPATIBLE_WINDOW;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
@@ -1081,16 +1080,14 @@ final class WindowState implements WindowManagerPolicy.WindowState {
    }

    /**
     * Return whether this window is wanting to have a translation
     * animation applied to it for an in-progress move.  (Only makes
     * Return whether this window has moved. (Only makes
     * sense to call from performLayoutAndPlaceSurfacesLockedInner().)
     */
    boolean shouldAnimateMove() {
        return mContentChanged && !mExiting && !mWinAnimator.mLastHidden && mService.okToDisplay()
                && (mFrame.top != mLastFrame.top
    boolean hasMoved() {
        return mHasSurface && mContentChanged && !mExiting && !mWinAnimator.mLastHidden
                && mService.okToDisplay() && (mFrame.top != mLastFrame.top
                        || mFrame.left != mLastFrame.left)
                && (mAttrs.privateFlags&PRIVATE_FLAG_NO_MOVE_ANIMATION) == 0
                && (mAttachedWindow == null || !mAttachedWindow.shouldAnimateMove());
                && (mAttachedWindow == null || !mAttachedWindow.hasMoved());
    }

    boolean isFullscreen(int screenWidth, int screenHeight) {