diff --git a/lib/csslib.php b/lib/csslib.php index 3032433499c..2408e3849b2 100644 --- a/lib/csslib.php +++ b/lib/csslib.php @@ -3845,7 +3845,11 @@ class css_style_background extends css_style { } else if ($attachment === self::NULL_VALUE && in_array($bit, $attachments)) { $attachment = $bit; } else if ($bit !== '') { - $return[] = css_style_background_advanced::init($bit); + $advanced = css_style_background_advanced::init($bit); + if ($important) { + $advanced->set_important(); + } + $return[] = $advanced; } } } diff --git a/lib/tests/csslib_test.php b/lib/tests/csslib_test.php index c5f12233b8b..f00a88f7838 100644 --- a/lib/tests/csslib_test.php +++ b/lib/tests/csslib_test.php @@ -213,6 +213,16 @@ class css_optimiser_testcase extends advanced_testcase { $css = '#filesskin .yui3-widget-hd{background:#CCC;background:-webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#CCCCCC));background:-moz-linear-gradient(top, #FFFFFF, #CCCCCC);}'; $this->assertEquals($css, $optimiser->process($css)); + + $css = '.userenrolment{background:-moz-linear-gradient(top, #FFFFFF, #CCCCCC) !important;}'; + $this->assertEquals($css, $optimiser->process($css)); + + $css = '.userenrolment{background:#CCC !important;background:-webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#CCCCCC)) !important;background:-moz-linear-gradient(top, #FFFFFF, #CCCCCC) !important;}'; + $this->assertEquals($css, $optimiser->process($css)); + + $cssin = '.userenrolment{background:-moz-linear-gradient(top, #FFFFFF, #CCCCCC) !important;}.userenrolment {background: #CCCCCC!important;background: -webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#CCCCCC))!important;}'; + $cssout = '.userenrolment{background:#CCC !important;background:-moz-linear-gradient(top, #FFFFFF, #CCCCCC) !important;background:-webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#CCCCCC)) !important;}'; + $this->assertEquals($cssout, $optimiser->process($cssin)); } /**