mirror of
https://github.com/nicbarker/clay.git
synced 2025-04-14 02:08:04 +00:00
Update the pointer state before the onHover function is called
This commit is contained in:
parent
5571c00a21
commit
46c962d7f2
29
clay.h
29
clay.h
@ -3639,6 +3639,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;
|
||||
@ -3690,20 +3705,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")
|
||||
|
Loading…
Reference in New Issue
Block a user