diff --git a/src/interaction/modes/Cursor.ts b/src/interaction/modes/Cursor.ts index 7b104f1..eabd1f3 100644 --- a/src/interaction/modes/Cursor.ts +++ b/src/interaction/modes/Cursor.ts @@ -93,7 +93,7 @@ const mousedown: ModeActionsAction = ({ }) ); - uiState.actions.setItemControls(itemAtTile); + } else { uiState.actions.setMode( produce(uiState.mode, (draft) => { @@ -148,7 +148,9 @@ export const Cursor: ModeActions = { mouseup: ({ uiState, isRendererInteraction }) => { if (uiState.mode.type !== 'CURSOR' || !isRendererInteraction) return; - if (uiState.mode.mousedownItem) { + const hasMoved = uiState.mouse.mousedown && hasMovedTile(uiState.mouse); + + if (uiState.mode.mousedownItem && !hasMoved) { if (uiState.mode.mousedownItem.type === 'ITEM') { uiState.actions.setItemControls({ type: 'ITEM', diff --git a/src/interaction/modes/DragItems.ts b/src/interaction/modes/DragItems.ts index c3e1337..29c1cdb 100644 --- a/src/interaction/modes/DragItems.ts +++ b/src/interaction/modes/DragItems.ts @@ -113,6 +113,7 @@ export const DragItems: ModeActions = { dragItems(uiState.mode.items, uiState.mouse.position.tile, delta, scene); }, mouseup: ({ uiState }) => { + uiState.actions.setItemControls(null); uiState.actions.setMode({ type: 'CURSOR', showCursor: true,