diff --git a/clay.h b/clay.h index fef43b8..6293825 100644 --- a/clay.h +++ b/clay.h @@ -3792,6 +3792,21 @@ void Clay_SetPointerState(Clay_Vector2 position, bool isPointerDown) { } context->pointerInfo.position = position; context->pointerOverIds.length = 0; + + if (isPointerDown) { + if (context->pointerInfo.state == CLAY_POINTER_DATA_PRESSED_THIS_FRAME) { + context->pointerInfo.state = CLAY_POINTER_DATA_PRESSED; + } else if (context->pointerInfo.state != CLAY_POINTER_DATA_PRESSED) { + context->pointerInfo.state = CLAY_POINTER_DATA_PRESSED_THIS_FRAME; + } + } else { + if (context->pointerInfo.state == CLAY_POINTER_DATA_RELEASED_THIS_FRAME) { + context->pointerInfo.state = CLAY_POINTER_DATA_RELEASED; + } else if (context->pointerInfo.state != CLAY_POINTER_DATA_RELEASED) { + context->pointerInfo.state = CLAY_POINTER_DATA_RELEASED_THIS_FRAME; + } + } + Clay__int32_tArray dfsBuffer = context->layoutElementChildrenBuffer; for (int32_t rootIndex = context->layoutElementTreeRoots.length - 1; rootIndex >= 0; --rootIndex) { dfsBuffer.length = 0; @@ -3843,20 +3858,6 @@ void Clay_SetPointerState(Clay_Vector2 position, bool isPointerDown) { break; } } - - if (isPointerDown) { - if (context->pointerInfo.state == CLAY_POINTER_DATA_PRESSED_THIS_FRAME) { - context->pointerInfo.state = CLAY_POINTER_DATA_PRESSED; - } else if (context->pointerInfo.state != CLAY_POINTER_DATA_PRESSED) { - context->pointerInfo.state = CLAY_POINTER_DATA_PRESSED_THIS_FRAME; - } - } else { - if (context->pointerInfo.state == CLAY_POINTER_DATA_RELEASED_THIS_FRAME) { - context->pointerInfo.state = CLAY_POINTER_DATA_RELEASED; - } else if (context->pointerInfo.state != CLAY_POINTER_DATA_RELEASED) { - context->pointerInfo.state = CLAY_POINTER_DATA_RELEASED_THIS_FRAME; - } - } } CLAY_WASM_EXPORT("Clay_Initialize")