changeset 2367:0f340646a2ca

GTK4: GtkPictures should be centered, not filled... don't clobber the alignment during box packing.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sun, 14 Mar 2021 04:48:33 +0000
parents b3efaae95735
children ec90b552b266
files gtk4/dw.c
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/gtk4/dw.c	Sun Mar 14 00:12:04 2021 +0000
+++ b/gtk4/dw.c	Sun Mar 14 04:48:33 2021 +0000
@@ -2642,6 +2642,9 @@
 {
    GtkWidget *tmp = gtk_picture_new();
    gtk_picture_set_can_shrink(GTK_PICTURE(tmp), TRUE);
+   gtk_picture_set_keep_aspect_ratio(GTK_PICTURE(tmp), TRUE);
+   gtk_widget_set_halign(GTK_WIDGET(tmp), GTK_ALIGN_CENTER);
+   gtk_widget_set_valign(GTK_WIDGET(tmp), GTK_ALIGN_CENTER);
    gtk_widget_show(tmp);
    g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid));
    DW_FUNCTION_RETURN_THIS(tmp);
@@ -8263,9 +8266,13 @@
       g_object_set_data(G_OBJECT(item), "_dw_table", box);
       /* Set the expand attribute on the widgets now instead of the container */
       gtk_widget_set_vexpand(item, vsize);
-      gtk_widget_set_valign(item, vsize ? GTK_ALIGN_FILL : GTK_ALIGN_START);
       gtk_widget_set_hexpand(item, hsize);
-      gtk_widget_set_halign(item, hsize ? GTK_ALIGN_FILL : GTK_ALIGN_START);
+      /* Don't clobber the center alignment on pictures */
+      if(!GTK_IS_PICTURE(item))
+      {
+         gtk_widget_set_valign(item, vsize ? GTK_ALIGN_FILL : GTK_ALIGN_START);
+         gtk_widget_set_halign(item, hsize ? GTK_ALIGN_FILL : GTK_ALIGN_START);
+      }
       /* Set pad for each margin direction on the widget */
       _dw_widget_set_pad(item, pad);
       /* Add to the grid using insert...