mirror of
				https://github.com/nicbarker/clay.git
				synced 2025-11-04 00:26:17 +00:00 
			
		
		
		
	[Core] Fix a bug where floating elements could be clipped incorrectly
This commit is contained in:
		
							parent
							
								
									a7d46629b1
								
							
						
					
					
						commit
						1f8cab8d72
					
				
							
								
								
									
										5
									
								
								clay.h
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								clay.h
									
									
									
									
									
								
							| 
						 | 
					@ -1654,6 +1654,8 @@ void Clay__CloseElement(void) {
 | 
				
			||||||
            elementHasScrollVertical = config->config.scrollElementConfig->vertical;
 | 
					            elementHasScrollVertical = config->config.scrollElementConfig->vertical;
 | 
				
			||||||
            context->openClipElementStack.length--;
 | 
					            context->openClipElementStack.length--;
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 | 
					        } else if (config->type == CLAY__ELEMENT_CONFIG_TYPE_FLOATING) {
 | 
				
			||||||
 | 
					            context->openClipElementStack.length--;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1933,6 +1935,9 @@ void Clay__ConfigureOpenElementPtr(const Clay_ElementDeclaration *declaration) {
 | 
				
			||||||
            if (!openLayoutElementId.id) {
 | 
					            if (!openLayoutElementId.id) {
 | 
				
			||||||
                openLayoutElementId = Clay__HashString(CLAY_STRING("Clay__FloatingContainer"), context->layoutElementTreeRoots.length, 0);
 | 
					                openLayoutElementId = Clay__HashString(CLAY_STRING("Clay__FloatingContainer"), context->layoutElementTreeRoots.length, 0);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            int32_t currentElementIndex = Clay__int32_tArray_GetValue(&context->openLayoutElementStack, context->openLayoutElementStack.length - 1);
 | 
				
			||||||
 | 
					            Clay__int32_tArray_Set(&context->layoutElementClipElementIds, currentElementIndex, clipElementId);
 | 
				
			||||||
 | 
					            Clay__int32_tArray_Add(&context->openClipElementStack, clipElementId);
 | 
				
			||||||
            Clay__LayoutElementTreeRootArray_Add(&context->layoutElementTreeRoots, CLAY__INIT(Clay__LayoutElementTreeRoot) {
 | 
					            Clay__LayoutElementTreeRootArray_Add(&context->layoutElementTreeRoots, CLAY__INIT(Clay__LayoutElementTreeRoot) {
 | 
				
			||||||
                    .layoutElementIndex = Clay__int32_tArray_GetValue(&context->openLayoutElementStack, context->openLayoutElementStack.length - 1),
 | 
					                    .layoutElementIndex = Clay__int32_tArray_GetValue(&context->openLayoutElementStack, context->openLayoutElementStack.length - 1),
 | 
				
			||||||
                    .parentId = floatingConfig.parentId,
 | 
					                    .parentId = floatingConfig.parentId,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue