# HG changeset patch # User Olaf Wintermann # Date 1760382479 -7200 # Node ID 3106d9ca2f9c58aea907e695afc4744c3da4f892 # Parent 9d958108c415fee7d9dc33391eb1293741dc7618 fix wrong child height in grid layout (win32) diff -r 9d958108c415 -r 3106d9ca2f9c application/main.c --- a/application/main.c Sun Oct 12 17:37:54 2025 +0200 +++ b/application/main.c Mon Oct 13 21:07:59 2025 +0200 @@ -1152,6 +1152,9 @@ ui_newline(obj); ui_button(obj, .label = "Test 3XX", .colspan = 3, .fill = TRUE, .onclick = action_button); + ui_newline(obj); + + ui_button(obj, .label = "End"); } @@ -1160,6 +1163,7 @@ } int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { +//int main() { ui_init("app1", 0, NULL); ui_onstartup(application_startup, NULL); diff -r 9d958108c415 -r 3106d9ca2f9c ui/win32/container.c --- a/ui/win32/container.c Sun Oct 12 17:37:54 2025 +0200 +++ b/ui/win32/container.c Mon Oct 13 21:07:59 2025 +0200 @@ -133,7 +133,7 @@ 0, TEXT("STATIC"), NULL, - WS_CHILD | WS_VISIBLE | WS_BORDER, + WS_CHILD | WS_VISIBLE, 0, 0, 100, 100, parent, NULL, diff -r 9d958108c415 -r 3106d9ca2f9c ui/win32/grid.c --- a/ui/win32/grid.c Sun Oct 12 17:37:54 2025 +0200 +++ b/ui/win32/grid.c Mon Oct 13 21:07:59 2025 +0200 @@ -67,6 +67,10 @@ } void ui_grid_layout(UiGridLayout *grid, int width, int height) { + if (width == 0 || height == 0) { + return; + } + int ncols = grid->max_column+1; int nrows = grid->max_row+1; @@ -260,10 +264,10 @@ } else { child_width = col->size; } + child_width -= elm->layout.margin.left + elm->layout.margin.right; } else { child_width = elm->layout.preferred_width; } - child_width -= elm->layout.margin.left + elm->layout.margin.right; if(elm->layout.vfill) { if(elm->layout.rowspan > 1) { @@ -282,7 +286,7 @@ } child_height = rheight; } - child_height = row->size; + child_height = row->size - elm->layout.margin.top - elm->layout.margin.bottom; } else { child_height = elm->layout.preferred_height; }