From 065b81f165058d40e6c7592674894ebd83da0ea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=20Cla=C3=9Fen?= Date: Sun, 13 Nov 2022 01:55:16 +0100 Subject: [PATCH] Version bump --- reorderable/build.gradle.kts | 2 +- .../burnoutcrew/reorderable/ReorderableState.kt | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/reorderable/build.gradle.kts b/reorderable/build.gradle.kts index 480a04c..04ce504 100644 --- a/reorderable/build.gradle.kts +++ b/reorderable/build.gradle.kts @@ -8,7 +8,7 @@ plugins { } group = "org.burnoutcrew.composereorderable" -version = "0.9.5" +version = "0.9.6" kotlin { jvm() diff --git a/reorderable/src/commonMain/kotlin/org/burnoutcrew/reorderable/ReorderableState.kt b/reorderable/src/commonMain/kotlin/org/burnoutcrew/reorderable/ReorderableState.kt index 1dc98b5..f4b5c6e 100644 --- a/reorderable/src/commonMain/kotlin/org/burnoutcrew/reorderable/ReorderableState.kt +++ b/reorderable/src/commonMain/kotlin/org/burnoutcrew/reorderable/ReorderableState.kt @@ -91,8 +91,15 @@ abstract class ReorderableState( .distinctUntilChanged { old, new -> old.firstOrNull()?.itemIndex == new.firstOrNull()?.itemIndex && old.count() == new.count() } internal open fun onDragStart(offsetX: Int, offsetY: Int): Boolean { - val x = if (!isVerticalScroll) offsetX + viewportStartOffset else offsetX - val y = if (isVerticalScroll) offsetY + viewportStartOffset else offsetY + val x: Int + val y: Int + if (isVerticalScroll) { + x = offsetX + y = offsetY + viewportStartOffset + } else { + x = offsetX + viewportStartOffset + y = offsetY + } return visibleItemsInfo .firstOrNull { x in it.left..it.right && y in it.top..it.bottom } ?.also { @@ -205,7 +212,11 @@ abstract class ReorderableState( ) { return@fastForEach } - if (canDragOver?.invoke(ItemPosition(item.itemIndex, item.itemKey), ItemPosition(selected.itemIndex, selected.itemKey)) != false) { + if (canDragOver?.invoke( + ItemPosition(item.itemIndex, item.itemKey), + ItemPosition(selected.itemIndex, selected.itemKey) + ) != false + ) { val dx = (centerX - (item.left + item.right) / 2).absoluteValue val dy = (centerY - (item.top + item.bottom) / 2).absoluteValue val dist = dx * dx + dy * dy