From 28080f9c29cb37f306b6f8683b03d82050efab06 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Sun, 18 Jan 2026 12:24:13 +0200
Subject: [PATCH 42/42] gtk4 citydlg: Stop supported/present units icons
 shrinking

Make scrollbar to appear as soon as units do not fit by
their natural size, instead of shrinking them to fit in
without the scrollbar.

Reported by Andrea Maria Marconi

See RM #1875

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 client/gui-gtk-4.0/citydlg.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/client/gui-gtk-4.0/citydlg.c b/client/gui-gtk-4.0/citydlg.c
index 66fe5bfd86..cc6d7cb8c1 100644
--- a/client/gui-gtk-4.0/citydlg.c
+++ b/client/gui-gtk-4.0/citydlg.c
@@ -944,6 +944,7 @@ static void create_and_append_overview_page(struct city_dialog *pdialog)
   GtkWidget *page, *bottom;
   GtkWidget *right, *frame, *table;
   GtkWidget *label, *sw, *view, *bar, *production_combo;
+  GtkWidget *vp;
   GtkCellRenderer *rend;
   GtkListStore *production_store;
   /* TRANS: Overview tab in city dialog */
@@ -1083,7 +1084,10 @@ static void create_and_append_overview_page(struct city_dialog *pdialog)
 
   table = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2);
   gtk_widget_set_size_request(table, -1, unit_height);
-  gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(sw), table);
+  vp = gtk_viewport_new(NULL, NULL);
+  gtk_scrollable_set_hscroll_policy(GTK_SCROLLABLE(vp), GTK_SCROLL_NATURAL);
+  gtk_viewport_set_child(GTK_VIEWPORT(vp), table);
+  gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(sw), vp);
 
   pdialog->overview.supported_unit_table = table;
   unit_node_vector_init(&pdialog->overview.supported_units);
@@ -1098,7 +1102,10 @@ static void create_and_append_overview_page(struct city_dialog *pdialog)
 
   table = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2);
   gtk_widget_set_size_request(table, -1, unit_height);
-  gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(sw), table);
+  vp = gtk_viewport_new(NULL, NULL);
+  gtk_scrollable_set_hscroll_policy(GTK_SCROLLABLE(vp), GTK_SCROLL_NATURAL);
+  gtk_viewport_set_child(GTK_VIEWPORT(vp), table);
+  gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(sw), vp);
 
   pdialog->overview.present_unit_table = table;
   unit_node_vector_init(&pdialog->overview.present_units);
-- 
2.51.0

