Make setting wallpaper offset immediate.
Wallpaper offset was passing through H Handler before being set. It isn't part of animation and wasn't going through animation anyways. This change goes back to original implementation of setting wallpaper offset directly from call. Change-Id: Ied88e2dc042af814b5ba91c7efb839bd82682567
This commit is contained in:
@@ -2045,11 +2045,6 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
}
|
||||
}
|
||||
|
||||
// TODO(cmautner): Move to WindowAnimator.
|
||||
void setWallpaperOffset(final WindowStateAnimator winAnimator, final int left, final int top) {
|
||||
mH.sendMessage(mH.obtainMessage(H.SET_WALLPAPER_OFFSET, left, top, winAnimator));
|
||||
}
|
||||
|
||||
void updateWallpaperOffsetLocked(WindowState changingTarget, boolean sync) {
|
||||
final int dw = mAppDisplayWidth;
|
||||
final int dh = mAppDisplayHeight;
|
||||
@@ -2084,19 +2079,8 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
// TODO(cmautner): Don't move this from here, just lock the WindowAnimator.
|
||||
if (winAnimator.mSurfaceX != wallpaper.mShownFrame.left
|
||||
|| winAnimator.mSurfaceY != wallpaper.mShownFrame.top) {
|
||||
Surface.openTransaction();
|
||||
try {
|
||||
if (SHOW_TRANSACTIONS) logSurface(wallpaper,
|
||||
"POS " + wallpaper.mShownFrame.left
|
||||
+ ", " + wallpaper.mShownFrame.top, null);
|
||||
setWallpaperOffset(winAnimator, (int) wallpaper.mShownFrame.left,
|
||||
winAnimator.setWallpaperOffset((int) wallpaper.mShownFrame.left,
|
||||
(int) wallpaper.mShownFrame.top);
|
||||
} catch (RuntimeException e) {
|
||||
Slog.w(TAG, "Error positioning surface of " + wallpaper
|
||||
+ " pos=(" + wallpaper.mShownFrame.left
|
||||
+ "," + wallpaper.mShownFrame.top + ")", e);
|
||||
}
|
||||
Surface.closeTransaction();
|
||||
}
|
||||
// We only want to be synchronous with one wallpaper.
|
||||
sync = false;
|
||||
@@ -6913,8 +6897,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
|
||||
public static final int ANIMATOR_WHAT_OFFSET = 100000;
|
||||
public static final int SET_TRANSPARENT_REGION = ANIMATOR_WHAT_OFFSET + 1;
|
||||
public static final int SET_WALLPAPER_OFFSET = ANIMATOR_WHAT_OFFSET + 2;
|
||||
public static final int CLEAR_PENDING_ACTIONS = ANIMATOR_WHAT_OFFSET + 3;
|
||||
public static final int CLEAR_PENDING_ACTIONS = ANIMATOR_WHAT_OFFSET + 2;
|
||||
|
||||
private Session mLastReportedHold;
|
||||
|
||||
@@ -7403,14 +7386,6 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
break;
|
||||
}
|
||||
|
||||
case SET_WALLPAPER_OFFSET: {
|
||||
final WindowStateAnimator winAnimator = (WindowStateAnimator) msg.obj;
|
||||
winAnimator.setWallpaperOffset(msg.arg1, msg.arg2);
|
||||
|
||||
scheduleAnimationLocked();
|
||||
break;
|
||||
}
|
||||
|
||||
case CLEAR_PENDING_ACTIONS: {
|
||||
mAnimator.clearPendingActions();
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user