mirror of
https://github.com/nicbarker/clay.git
synced 2025-09-18 04:26:18 +00:00
[Core] Fix culling for scissor commands outside the window
This commit is contained in:
parent
4a91cac1b2
commit
fccfdfce36
5
clay.h
5
clay.h
|
@ -2685,7 +2685,7 @@ void Clay__CalculateFinalLayout(void) {
|
||||||
}
|
}
|
||||||
if (root->clipElementId) {
|
if (root->clipElementId) {
|
||||||
Clay_LayoutElementHashMapItem *clipHashMapItem = Clay__GetHashMapItem(root->clipElementId);
|
Clay_LayoutElementHashMapItem *clipHashMapItem = Clay__GetHashMapItem(root->clipElementId);
|
||||||
if (clipHashMapItem) {
|
if (clipHashMapItem && !Clay__ElementIsOffscreen(&clipHashMapItem->boundingBox)) {
|
||||||
// Floating elements that are attached to scrolling contents won't be correctly positioned if external scroll handling is enabled, fix here
|
// Floating elements that are attached to scrolling contents won't be correctly positioned if external scroll handling is enabled, fix here
|
||||||
if (context->externalScrollHandlingEnabled) {
|
if (context->externalScrollHandlingEnabled) {
|
||||||
Clay_ClipElementConfig *clipConfig = Clay__FindElementConfigWithType(clipHashMapItem->layoutElement, CLAY__ELEMENT_CONFIG_TYPE_CLIP).clipElementConfig;
|
Clay_ClipElementConfig *clipConfig = Clay__FindElementConfigWithType(clipHashMapItem->layoutElement, CLAY__ELEMENT_CONFIG_TYPE_CLIP).clipElementConfig;
|
||||||
|
@ -2957,7 +2957,8 @@ void Clay__CalculateFinalLayout(void) {
|
||||||
bool closeClipElement = false;
|
bool closeClipElement = false;
|
||||||
Clay_ClipElementConfig *clipConfig = Clay__FindElementConfigWithType(currentElement, CLAY__ELEMENT_CONFIG_TYPE_CLIP).clipElementConfig;
|
Clay_ClipElementConfig *clipConfig = Clay__FindElementConfigWithType(currentElement, CLAY__ELEMENT_CONFIG_TYPE_CLIP).clipElementConfig;
|
||||||
if (clipConfig) {
|
if (clipConfig) {
|
||||||
closeClipElement = true;
|
Clay_LayoutElementHashMapItem *currentElementData = Clay__GetHashMapItem(currentElement->id);
|
||||||
|
closeClipElement = !Clay__ElementIsOffscreen(¤tElementData->boundingBox);
|
||||||
for (int32_t i = 0; i < context->scrollContainerDatas.length; i++) {
|
for (int32_t i = 0; i < context->scrollContainerDatas.length; i++) {
|
||||||
Clay__ScrollContainerDataInternal *mapping = Clay__ScrollContainerDataInternalArray_Get(&context->scrollContainerDatas, i);
|
Clay__ScrollContainerDataInternal *mapping = Clay__ScrollContainerDataInternalArray_Get(&context->scrollContainerDatas, i);
|
||||||
if (mapping->layoutElement == currentElement) {
|
if (mapping->layoutElement == currentElement) {
|
||||||
|
|
Loading…
Reference in a new issue