diff --git a/gtk/gtkcssimage.c b/gtk/gtkcssimage.c index 29d9959d8b..822ba4726f 100644 --- a/gtk/gtkcssimage.c +++ b/gtk/gtkcssimage.c @@ -358,13 +358,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 diff --git a/testsuite/reftests/Makefile.am b/testsuite/reftests/Makefile.am index 2dbca1209c..31645d23f0 100644 --- a/testsuite/reftests/Makefile.am +++ b/testsuite/reftests/Makefile.am @@ -198,6 +198,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 \ diff --git a/testsuite/reftests/css-image-aspect-ratio.css b/testsuite/reftests/css-image-aspect-ratio.css new file mode 100644 index 0000000000..da054daa16 --- /dev/null +++ b/testsuite/reftests/css-image-aspect-ratio.css @@ -0,0 +1,8 @@ +window { + background-image: -gtk-icontheme("edit-delete"); + background-repeat: no-repeat; +} + +#reference { + background-size: 24px 24px; +} diff --git a/testsuite/reftests/css-image-aspect-ratio.ref.ui b/testsuite/reftests/css-image-aspect-ratio.ref.ui new file mode 100644 index 0000000000..88fbd72e75 --- /dev/null +++ b/testsuite/reftests/css-image-aspect-ratio.ref.ui @@ -0,0 +1,11 @@ + + + + + 48 + 24 + False + popup + reference + + diff --git a/testsuite/reftests/css-image-aspect-ratio.ui b/testsuite/reftests/css-image-aspect-ratio.ui new file mode 100644 index 0000000000..c7f559893b --- /dev/null +++ b/testsuite/reftests/css-image-aspect-ratio.ui @@ -0,0 +1,10 @@ + + + + + 48 + 24 + False + popup + +