[gtk: 2/4] picture: Set overflow to be hidden




commit f1faa71d6d1ab640f3e5aebaaf767cb75b2f28af
Author: Marco Melorio <marco melorio protonmail com>
Date:   Sat Jul 16 01:31:19 2022 +0200

    picture: Set overflow to be hidden
    
    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 | 1 -
 gtk/gtkenums.h                         | 7 +++----
 gtk/gtkpicture.c                       | 7 ++-----
 3 files changed, 5 insertions(+), 10 deletions(-)
---
diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui
index 015ff4c791..7f8c1699d8 100644
--- a/demos/widget-factory/widget-factory.ui
+++ b/demos/widget-factory/widget-factory.ui
@@ -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"/>
diff --git a/gtk/gtkenums.h b/gtk/gtkenums.h
index 44e246fc9e..89d8f5e4a0 100644
--- a/gtk/gtkenums.h
+++ b/gtk/gtkenums.h
@@ -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.
  *
diff --git a/gtk/gtkpicture.c b/gtk/gtkpicture.c
index eaabda7c74..92a177df97 100644
--- a/gtk/gtkpicture.c
+++ b/gtk/gtkpicture.c
@@ -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,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]