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

Commit 952d0a71 authored by Yuichiro Hanada's avatar Yuichiro Hanada
Browse files

Update move visual indicators in one transaction

Bug: 418920013
Test: WMShellUnitTest
Test: WMShellSmokeTestsDesktopMode
Flag: com.android.window.flags.enable_connected_displays_window_drag
Change-Id: Ide88068b3e4dc537a54d51ea425a82e3d8ca8f39
parent 38481f16
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ class MultiDisplayDragMoveIndicatorController(
        desktopExecutor.execute {
            val startDisplayDpi =
                displayController.getDisplayLayout(startDisplayId)?.densityDpi() ?: return@execute
            val transaction = transactionSupplier()
            for (displayId in displayIds) {
                if (
                    displayId == startDisplayId ||
@@ -100,14 +101,12 @@ class MultiDisplayDragMoveIndicatorController(
                val dragIndicatorsForTask =
                    dragIndicators.getOrPut(taskInfo.taskId) { mutableMapOf() }
                dragIndicatorsForTask[displayId]?.also { existingIndicator ->
                    val transaction = transactionSupplier()
                    existingIndicator.relayout(boundsPx, transaction, visibility)
                    transaction.apply()
                }
                    ?: run {
                        val newIndicator = indicatorSurfaceFactory.create(displayContext, taskLeash)
                        newIndicator.show(
                            transactionSupplier(),
                            transaction,
                            taskInfo,
                            rootTaskDisplayAreaOrganizer,
                            displayId,
@@ -118,6 +117,7 @@ class MultiDisplayDragMoveIndicatorController(
                        dragIndicatorsForTask[displayId] = newIndicator
                    }
            }
            transaction.apply()
        }
    }

+0 −1
Original line number Diff line number Diff line
@@ -94,7 +94,6 @@ class MultiDisplayDragMoveIndicatorSurface(context: Context, taskSurface: Surfac
        rootTaskDisplayAreaOrganizer.reparentToDisplayArea(displayId, sc, transaction)
        relayout(bounds, transaction, visibility)
        transaction.show(sc).setLayer(sc, MOVE_INDICATOR_LAYER).setScale(sc, scale, scale)
        transaction.apply()
    }

    /**
+0 −1
Original line number Diff line number Diff line
@@ -128,7 +128,6 @@ class MultiDisplayDragMoveIndicatorSurfaceTest : ShellTestCase() {
            .setPosition(eq(mockSurface), eq(BOUNDS.left.toFloat()), eq(BOUNDS.top.toFloat()))
        verify(mockTransaction).show(eq(mockSurface))
        verify(mockTransaction).setScale(eq(mockSurface), eq(SCALE), eq(SCALE))
        verify(mockTransaction).apply()
    }

    @Test