Fixing shorthand properties in CSS
David Hyatt
hyatt at apple.com
Mon Jan 19 23:15:52 CET 2004
I see the bug. In render_style.h...
void setZIndex(int v) { SET_VAR(box, z_auto, false);
SET_VAR(box,z_index,v) }
If you call setZIndex(0) after setting the auto flag, it will unset the
auto flag! This is a bug in the "initial" handling for the z-index
property in the Safari tree as well!
I think the best way to handle this is to remove the calls to
setZIndex(0) from cssstyleselector.cpp (for both the initial case and
the auto case) and to modify setHasAutoZIndex to set the value of
z-index to 0 instead. Like so:
void setHasAutoZIndex() { SET_VAR(box, z_auto, true);
SET_VAR(box,z_index,0) }
That should fix the problem I think. Thanks for noticing this!
dave
(hyatt at apple.com)
On Jan 19, 2004, at 2:11 PM, David Hyatt wrote:
> You're saying that removing the setZIndex(0) call makes the tests
> pass? Or that adding it makes them pass?
>
> dave
>
> On Jan 19, 2004, at 1:42 PM, Stephan Kulow wrote:
>
>> Am Montag 19 Januar 2004 22:21 schrieb David Hyatt:
>>> Wait, I may have misunderstood you. Could you point me to one of the
>>> affected test cases?
>>>
>> Well, let's see. When I apply this little patch to khtml HEAD:
>> --- css/cssstyleselector.cpp 19 Jan 2004 16:50:40 -0000 1.306
>> +++ css/cssstyleselector.cpp 19 Jan 2004 21:38:13 -0000
>> @@ -2687,7 +2687,7 @@ void CSSStyleSelector::applyRule( int id
>>
>> if (primitiveValue->getIdent() == CSS_VAL_AUTO) {
>> style->setHasAutoZIndex();
>> -#ifndef APPLE_CHANGES
>> +#ifdef APPLE_CHANGES
>> style->setZIndex(0);
>> #endif
>> return;
>>
>> Then I get 7 regressions:
>> output/webcore/fast/block/positioning/014.html-render
>> output/webcore/fast/block/positioning/015.html-render
>> output/webcore/fast/block/positioning/016.html-render
>> output/webcore/fast/block/positioning/019.html-render
>> output/webcore/fast/block/positioning/022.html-render
>> output/webcore/fast/block/positioning/025.html-render
>> output/webcore/fast/block/positioning/051.html-render
>>
>> All are similiar to this:
>> --- baseline/webcore/fast/block/positioning/015.html-render
>> 2003-11-24
>> 22:03:37.000000000 +0100
>> +++ output/webcore/fast/block/positioning/015.html-render
>> 2004-01-19
>> 22:36:06.000000000 +0100
>> @@ -8,6 +8,6 @@
>> layer at (0,0) size 100x100
>> RenderBlock (positioned) zI: 1 {div} at (0,0) size 100x100
>> [bgcolor=#ff0000] positioned paintBackground layouted minMaxKnown
>> childrenInline
>> layer at (0,0) size 100x100
>> - RenderBlock (positioned) zI: 2 {div} at (0,0) size 100x100
>> [bgcolor=#008000] positioned paintBackground layouted minMaxKnown
>> childrenInline
>> -layer at (0,0) size 100x100
>> RenderBlock (positioned) zI: 1 {div} at (0,0) size 100x100
>> [bgcolor=#ff0000] positioned paintBackground layouted minMaxKnown
>> childrenInline
>> +layer at (0,0) size 100x100
>> + RenderBlock (positioned) zI: 2 {div} at (0,0) size 100x100
>> [bgcolor=#008000] positioned paintBackground layouted minMaxKnown
>> childrenInline
>>
>> And what does it mean? Well, that little patch moves the green above
>> the red
>> layer - fixing the test cases in khtml.
>>
>> Thanks you asked :)
>>
>> Greetings, Stephan
>>
>> --
>> Pace Peace Paix Paz Frieden Pax Pokój Friður Fred Béke 和平
>> Hasiti Lapé Hetep Malu Mир Wolakota Santiphap Irini שלום Peoch
>> Shanti Vrede Baris Rój Mír Taika Rongo Sulh Py'guapy 평화
>> _______________________________________________
>> Khtml-devel at kde.org
>> https://mail.kde.org/mailman/listinfo/khtml-devel
>
More information about the Khtml-devel
mailing list