diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java index b2989cd81a..93f615180e 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java @@ -160,7 +160,7 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar int actualMargin = resources.getDimensionPixelSize(R.dimen.taskbar_icon_spacing); int actualIconSize = mActivityContext.getDeviceProfile().taskbarIconSize; - if (enableTaskbarPinning() && !mActivityContext.isThreeButtonNav()) { + if (enableTaskbarPinning() && canTransitionToTransientTaskbar()) { DeviceProfile deviceProfile = mActivityContext.getTransientTaskbarDeviceProfile(); actualIconSize = deviceProfile.taskbarIconSize; } @@ -235,7 +235,7 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar // All apps icon takes less space compared to normal icon size, reserve space for the icon // separately. boolean forceTransientTaskbarSize = - enableTaskbarPinning() && !mActivityContext.isThreeButtonNav(); + enableTaskbarPinning() && canTransitionToTransientTaskbar(); availableWidth -= iconSize - (int) getResources().getDimension( mAllAppsButtonContainer.getAllAppsButtonTranslationXOffset( forceTransientTaskbarSize || mActivityContext.isTransientTaskbar())); @@ -244,6 +244,15 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar return Math.floorDiv(availableWidth, iconSize) + additionalIcons; } + /** + * Whether the taskbar in the state context supports transition to a transient taskbar (e.g. + * using a popup menu). + */ + boolean canTransitionToTransientTaskbar() { + return !mActivityContext.isThreeButtonNav() + && !mActivityContext.showDesktopTaskbarForFreeformDisplay(); + } + /** * Recalculates the max number of icons the taskbar view can show without entering overflow. * Returns whether the max number of icons changed and the change affects the number of icons diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java index ac9d2ba8bf..3cbce604ff 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java @@ -563,7 +563,7 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar sizeDiffTranslationRange *= -1; } - if (mActivity.isThreeButtonNav()) { + if (!mTaskbarView.canTransitionToTransientTaskbar()) { mTaskbarView.getAllAppsButtonContainer() .setTranslationXForTaskbarAllAppsIcon(allAppIconTranslateRange); return;