Commit 2e7d5c08 authored by Benjamin Otte's avatar Benjamin Otte

cssimage: Scale images to contain, not cover

Images with just an aspect ratio, but without a size, should be scaled
to be fully visible in the given area.
But we scaled them to completely cover the given area, which made them
partially invisible.

Reftest included.
parent 6da8cbc8
......@@ -307,13 +307,13 @@ _gtk_css_image_get_concrete_size (GtkCssImage *image,
{
if (image_aspect * default_height > default_width)
{
*concrete_width = default_height * image_aspect;
*concrete_height = default_height;
*concrete_width = default_width;
*concrete_height = default_width / image_aspect;
}
else
{
*concrete_width = default_width;
*concrete_height = default_width / image_aspect;
*concrete_width = default_height * image_aspect;
*concrete_height = default_height;
}
}
else
......
......@@ -206,6 +206,9 @@ testdata = \
css-currentcolor-alpha.css \
css-currentcolor-alpha.ui \
css-currentcolor-alpha.ref.ui \
css-image-aspect-ratio.css \
css-image-aspect-ratio.ui \
css-image-aspect-ratio.ref.ui \
css-match-class.css \
css-match-class.ref.ui \
css-match-class.ui \
......
window {
background-image: -gtk-icontheme("edit-delete");
background-repeat: no-repeat;
}
#reference {
background-size: 24px 24px;
}
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkWindow" id="window1">
<property name="width_request">48</property>
<property name="height_request">24</property>
<property name="can_focus">False</property>
<property name="type">popup</property>
<property name="name">reference</property>
</object>
</interface>
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkWindow" id="window1">
<property name="width_request">48</property>
<property name="height_request">24</property>
<property name="can_focus">False</property>
<property name="type">popup</property>
</object>
</interface>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment