# HG changeset patch # User Olaf Wintermann # Date 1759475039 -7200 # Node ID 27f126f6e361bb2b1a34c9f6498a0e21b87473c8 # Parent 91205084a8522da0ab5b02aca40e419401475635 implement spinbox width arg (GTK) diff -r 91205084a852 -r 27f126f6e361 ui/gtk/entry.c --- a/ui/gtk/entry.c Thu Oct 02 17:51:13 2025 +0200 +++ b/ui/gtk/entry.c Fri Oct 03 09:03:59 2025 +0200 @@ -82,6 +82,11 @@ GtkWidget *spin = gtk_spin_button_new_with_range(min, max, args->step); ui_set_name_and_style(spin, args->name, args->style_class); ui_set_widget_groups(obj->ctx, spin, args->groups); + + if(args->width > 0) { + gtk_widget_set_size_request(spin, args->width, -1); + } + gtk_spin_button_set_digits(GTK_SPIN_BUTTON(spin), args->digits); UiObserver **obs = NULL; if(var) { diff -r 91205084a852 -r 27f126f6e361 ui/gtk/text.c --- a/ui/gtk/text.c Thu Oct 02 17:51:13 2025 +0200 +++ b/ui/gtk/text.c Fri Oct 03 09:03:59 2025 +0200 @@ -616,10 +616,11 @@ uitext); if(args->width > 0) { - // TODO: gtk4 -#if GTK_MAJOR_VERSION <= 3 - gtk_entry_set_width_chars(GTK_ENTRY(textfield), args->width); -#endif + // An early implementation used gtk_entry_set_width_chars, + // but that is not available on gtk4 and other toolkits + // also don't have this. Setting the width in pixels can + // be implemented on all platforms + gtk_widget_set_size_request(textfield, args->width, -1); } if(frameless) { // TODO: gtk2legacy workaroud