Bug 375508: Outline drawing broken when outline doesn't overflow. r+sr=roc.

This commit is contained in:
sharparrow1%yahoo.com 2007-03-28 05:53:29 +00:00
Родитель 117902cd24
Коммит 0112321c33
4 изменённых файлов: 11 добавлений и 7 удалений

Просмотреть файл

@ -51,7 +51,6 @@
#include "nsIPresShell.h"
#include "nsFrameManager.h"
#include "nsStyleContext.h"
#include "nsIScrollableView.h"
#include "nsGkAtoms.h"
#include "nsIDrawingSurface.h"
#include "nsTransform2D.h"
@ -2047,15 +2046,11 @@ nscoord width, offset;
}
}
nsRect* overflowArea = aForFrame->GetOverflowAreaProperty(PR_FALSE);
if (!overflowArea) {
NS_WARNING("Hmm, outline painting should always find an overflow area here");
return;
}
nsRect overflowArea = aForFrame->GetOverflowRect();
// get the offset for our outline
aOutlineStyle.GetOutlineOffset(offset);
nsRect outside(*overflowArea + aBorderArea.TopLeft());
nsRect outside(overflowArea + aBorderArea.TopLeft());
nsRect inside(outside);
if (width + offset >= 0) {
// the overflow area is exactly the outside edge of the outline

Просмотреть файл

@ -0,0 +1,4 @@
<style>
html, body {margin:0; padding:5px}
</style>
<div style="outline: 10px solid black; outline-offset: 0; width: 5px; height:5px"></div>

Просмотреть файл

@ -0,0 +1,4 @@
<style>
html, body {margin:0; padding:0}
</style>
<div style="outline: 10px solid black; outline-offset: -10px; width: 25px; height:25px"></div>

Просмотреть файл

@ -201,3 +201,4 @@ fails == 368504-1.html 368504-1-ref.html # bug 368504
== 372553-1.html 372553-1-ref.html
== 373381-1.html 373381-1-ref.html
== 372037-1.html 372037-1-ref.html
== 375508-1.html 375508-1-ref.html