picture: Set overflow to be hidden
authorMarco Melorio <marco.melorio@protonmail.com>
Fri, 15 Jul 2022 23:31:19 +0000 (01:31 +0200)
committerMarco Melorio <marco.melorio@protonmail.com>
Fri, 15 Jul 2022 23:40:01 +0000 (01:40 +0200)
The new content-fit property was wrongly suggesting to manually set
widgets' overflow property, but that property is not really intended to
be set by external code. This commit removes those suggestions and
directly set picture's overflow to be hidden.

demos/widget-factory/widget-factory.ui
gtk/gtkenums.h
gtk/gtkpicture.c

index 015ff4c79118e33b289649752ba439b6fce604ee..7f8c1699d8e03505df78c36b02af71080d6c1998 100644 (file)
@@ -1266,7 +1266,6 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
                                   <object class="GtkPicture">
                                     <property name="file">resource:///org/gtk/WidgetFactory4/sunset.jpg</property>
                                     <property name="content-fit">cover</property>
-                                    <property name="overflow">hidden</property>
                                     <child>
                                       <object class="GtkDragSource">
                                         <signal name="prepare" handler="on_picture_drag_prepare" swapped="no"/>
index 44e246fc9e607872bd7551ed61072db29e2950ac..89d8f5e4a0d3904611dc8932a93037f21ace33be 100644 (file)
@@ -121,10 +121,9 @@ typedef enum
  *   content will appear as letterboxed if its aspect ratio is different
  *   from the allocation aspect ratio.
  * @GTK_CONTENT_FIT_COVER: Cover the entire allocation, while taking
- *   the content aspect ratio in consideration. This can result in an overflow
- *   if the content aspect ratio is different from the allocation aspect ratio.
- *   For this reason, you may also want to set [property@Gtk.Widget:overflow]
- *   to %GTK_OVERFLOW_HIDDEN.
+ *   the content aspect ratio in consideration. The resulting content
+ *   will appear as clipped if its aspect ratio is different from the
+ *   allocation aspect ratio.
  * @GTK_CONTENT_FIT_SCALE_DOWN: The content is scaled down to fit the
  *   allocation, if needed, otherwise its original size is used.
  *
index eaabda7c74cf0e5860dc91a13c8458b332963d04..92a177df9711987ded8660ab15966da5396cdac9 100644 (file)
@@ -474,6 +474,8 @@ gtk_picture_init (GtkPicture *self)
 {
   self->can_shrink = TRUE;
   self->content_fit = GTK_CONTENT_FIT_CONTAIN;
+
+  gtk_widget_set_overflow (GTK_WIDGET (self), GTK_OVERFLOW_HIDDEN);
 }
 
 /**
@@ -972,11 +974,6 @@ gtk_picture_get_can_shrink (GtkPicture *self)
  * Sets how the content should be resized to fit the `GtkPicture`.
  *
  * See [enum@Gtk.ContentFit] for details.
- *
- * If you use `GTK_CONTENT_FIT_COVER`, you may also want to set the
- * [property@Gtk.Widget:overflow] to `GTK_OVERFLOW_HIDDEN`, otherwise the
- * paintable will overflow the widget allocation if the aspect ratio of the
- * paintable is different from the one of the `GtkPicture` allocation.
  */
 void
 gtk_picture_set_content_fit (GtkPicture    *self,