Closed
Bug 21415
Opened 25 years ago
Closed 24 years ago
[INLINE] Empty inlines not taking space if alone on a line {ll}
Categories
(Core :: Layout, defect, P2)
Core
Layout
Tracking
()
VERIFIED
FIXED
mozilla0.9
People
(Reporter: sujay, Assigned: attinasi)
References
Details
(Keywords: css1, testcase, Whiteboard: [Hixie-P2] (second of two remaining inline box model bug))
Attachments
(6 files)
using 12/10 build of apprunner (1999121008)
1) launch apprunner
2) launch editor
3) immediately insert an anchor
where is the anchor? you don't see it.
4) start typing some text
now you see the anchor
all platforms.
Updated•25 years ago
|
Status: NEW → ASSIGNED
Summary: anchors don't show up until you start typing → Named anchors don't show up if the only thing in a document
Target Milestone: M13
Comment 1•25 years ago
|
||
Interesting - its a layout problem. If you type and then delete the text, the
Named Anchor image disappears! Maybe generated content (this image) doesn't
get displayed if it's the only content in the document?
Updated•25 years ago
|
Assignee: cmanske → troy
Status: ASSIGNED → NEW
Comment 2•25 years ago
|
||
We are using generated content to show an icon for a named anchor, which is not
displayed in the browser, but we need to show something in Composer.
Here is the CSS:
a[name] {
/* TEMPORARY TO COMPENSATE FOR BUG */
padding-left: 16px;
background: url(chrome://editor/skin/images/anchor-in-doc.gif) no-repeat;
background-position: center center;
}
As described above, if a named anchor is the only content in a document,
the icon doesn't display. I'll add attachments to demonstrate this in viewer:
SoloAnchor.html has just the anchor and no text. In viewer, the page appears
blank.
Anchor.html has the same anchor plus some text and now the named anchor image
shows up in viewer.
Comment 3•25 years ago
|
||
Comment 4•25 years ago
|
||
Comment 5•25 years ago
|
||
Adding myself to CC.
mass moving all Kipp's pre-beta bugs to M15. Nisheeth and I will
prioritize these and selectively move high-priority bugs into M13 and M14.
Updated•25 years ago
|
Severity: normal → critical
Summary: Named anchors don't show up if the only thing in a document → [dogfood]Named anchors don't show up if the only thing in a document
Comment 8•25 years ago
|
||
I'm asking that this bug receive higher "dogfood" priorty because it messes up
my ability to continue table editing development, i.e., it's "developer
dogfood".
Table editing is an important feature and with the current state, I can't
see if my code is working because the table doesn't redisplay correctly after
inserting or deleting rows and columns when a table has rowspan and/or colspan
> 1.
Comment 9•25 years ago
|
||
Comment 10•25 years ago
|
||
Using the 12/21/99 attachment, here is an example of bad table layout as a
result of not responding the the changed rowspan:
1. Edit the 12/21 sample file
2. Place caret in cell containing "7"
3. Execute menu command Table | Insert | Row Below
See the bad table layout!
Execute Debug | Test Table Layout to show debug information: notice that the
cell with the "6" did have its rowspan changed to 4, as it should.
Note also that you can click in various cells in the table and type or resize
the window, but none of these actions cause the table to redisplay correctly.
If you us File | Save As to save the file locally, then reload that file,
the table will display correctly.
Summary: [dogfood]Named anchors don't show up if the only thing in a document → [dogfood][BETA]Named anchors don't show up if the only thing in a document
Whiteboard: [PDT-]
Comment 11•25 years ago
|
||
Putting on PDT- radar. We do not think table editing is needed for dogfood.
Putting on [BETA] radar.
Updated•25 years ago
|
Assignee: kipp → buster
Summary: [dogfood][BETA]Named anchors don't show up if the only thing in a document → [FEATURE]Named anchors don't show up if the only thing in a document
Whiteboard: [PDT-]
Target Milestone: M15 → M13
Comment 12•25 years ago
|
||
removing dogfood markings, adding feature marking and assigning to buster for
m13
Comment 13•25 years ago
|
||
Please ignore comments starting with my rant on 1999-12-21 13:02. Comments
starting there were intended for bug 22246. This bug has nothing to do with
tables. Also ignore the "Sample table..." attachment.
Assignee: buster → kipp
Severity: critical → minor
Component: Editor → Layout
Summary: [FEATURE]Named anchors don't show up if the only thing in a document → Named anchors don't show up if the only thing in a document
Target Milestone: M13 → M16
Comment 14•25 years ago
|
||
the <A> is generating a frame that has width and height, so it should paint. It
isn't painting because the linebox containing it has
mData->mCombinedArea==(0,0,0,0) at the time paint is called. The linebox
combined area is not 0 if there is anything else on the line.
This is a post-beta problem, not critical.
Also, I don't think it's a feature at all, I think it's just a bug. Something
in the line reflow code isn't accounting for genreated content properly.
Throwing into Kipp's bucket.
Summary: Named anchors don't show up if the only thing in a document → [BLOCK] Named anchors don't show up if the only thing in a document
Comment 15•25 years ago
|
||
kipp is very unlikely to fix these, since he's not working ont he project any
longer. so I'll take a look.
Assignee: kipp → buster
Comment 16•25 years ago
|
||
redistributing bugs across future milestones, sorry for the spam
Target Milestone: M19 → M21
Comment 17•25 years ago
|
||
This bug has been marked "future" because the original netscape engineer working
on this is over-burdened. If you feel this is an error, that you or another
known resource will be working on this bug,or if it blocks your work in some way
-- please attach your concern to the bug for reconsideration.
Target Milestone: M21 → Future
Summary: [BLOCK] Named anchors don't show up if the only thing in a document → [INLINE] Named anchors don't show up if the only thing in a document
Comment 18•25 years ago
|
||
This is a very rare situation: Usually, you have some content in the page,
so the only time this happens is when inserting a named anchor is the very first
thing you do. Since the user will have to add some content to the page after
that, the anchor icon will appear.
So we definitely have other more important things to worry about.
Comment 19•24 years ago
|
||
*** Bug 66246 has been marked as a duplicate of this bug. ***
Comment 20•24 years ago
|
||
This problem is now seen with the "smiley" icons used in Messenger Composer,
which is a more important case than just the named anchor icon.
It would be more common for a user to select a smiley as the first thing in a
message, and thus be confused since it doesn't appear until they start typing.
Removing milestone and reassigning to Marc for consideration for fixing sooner
than "future"
Assignee: buster → attinasi
Status: ASSIGNED → NEW
Summary: [INLINE] Named anchors don't show up if the only thing in a document → [INLINE] Named anchor and "smiley" icons don't show up if the only thing in a document
Target Milestone: Future → ---
| Assignee | ||
Comment 21•24 years ago
|
||
I'm confused here. The testcase (attachID=3666) is using a background image, not
generated content. Buster dropped some comments about generated content which I
think are obsolete (?) since the problem now is that the background image is not
being shown if the anchor has no text.
From what I see, the behavior is actually 'correct', although I see that it is
not the desired behavior. According to CSS2 (10.2) "The width of a non-replaced
inline element's boxes is that of the rendered content within them (before any
relative offset of children)"
FWIW, IE does just what Mozilla does (i.e. show nothing) and Nav shows nothing
either except if you put a border on it you can see that Nav does assign some
space to the anchor.
Please bring me up to date on the bug here, especially with respect to generated
content - thanks. Maybe we can find a way to force the behavior you want...
Status: NEW → ASSIGNED
Comment 22•24 years ago
|
||
Sorry to confuse, I forgot the using background image isn't "generated content".
So yes, the behavior is technically correct, but we would like the
background icon to appear even if document is empty.
| Assignee | ||
Comment 23•24 years ago
|
||
As far as I can tell, the issue is really that the block that contains the named
anchor has to have something else in it. For example, I made a doc like:
<body>
<div>
a
</div>
<div>
<a name="hello" style="padding: 30px; background:
url(http://www.mozilla.org/editor/images/img-align-left.gif) no-repeat;
background-position:center center"></a>
</div>
</body>
and it still shows no background image, however
<body>
a
<a name="hello" style="padding: 30px; background:
url(http://www.mozilla.org/editor/images/img-align-left.gif) no-repeat;
background-position:center center"></a>
</body>
dose because the containing block (the body in this case) has something else in
it. Like buster mentioned way back in '99, the frame for the <a> has a size, but
the linebox that contains it is collapsing it for some reason. I'll see if I can
figure it out.
| Assignee | ||
Comment 24•24 years ago
|
||
OK, digging into the line layout code I saw the reason that the inline with no
content is not combined into the line size, and it is pretty explicit:
from nsLineLayout::RelativePositionFrames(PerSpanData* psd,
nsRect& aCombinedArea):
// Only if the frame has some area do we let it affect the
// combined area. Otherwise empty frames placed next to a floating
// element will cause the floaters margin to be relevant, which we
// don't want to happen.
I'm really afraid that I'll introduce some (more) floater bugs if I make make it
so that an empty inline takes up space so the background image is shown.
As an alternative for the composer, maybe you can put a style rule into your
override stylesheet that makes, for example, anchors have some generated
content, which makes them display the background image. For example, I put this
into the testcase:
<style>a:after{white-space:pre;content:" ";}</style>
and it works.
Hack, yes, but can you swallow it? If not, then I'll investigate further the
impact of making the empty inline take up space...
(CC'ing Hixie for his floater expertiese and general wisdom)
Comment 25•24 years ago
|
||
Comment 26•24 years ago
|
||
Empty inlines *should* be taking space (except in quirks mode). This is a bug.
I'm not sure what the issue regarding floaters is, though. It sounds suspect.
Why would we not want floater margins to take effect?
cc'ing dbaron, taking QA and turning this into a CSS bug. ;-)
Severity: minor → normal
QA Contact: sujay → ian
Summary: [INLINE] Named anchor and "smiley" icons don't show up if the only thing in a document → [INLINE] Named anchor and "smiley" icons don't show up if the only thing in a document {ll}
Updated•24 years ago
|
Summary: [INLINE] Named anchor and "smiley" icons don't show up if the only thing in a document {ll} → [INLINE] Empty inlines not taking space if alone on a line {ll}
| Assignee | ||
Comment 27•24 years ago
|
||
Thanks Ian. Setting milestone to Moz1.0 - Charley, yell loud if you need it
sooner...
Target Milestone: --- → mozilla1.0
Comment 28•24 years ago
|
||
No, we already tried generated content and the problem is we can't select the
icon, show a selected border, and have it return the <a> tag as the element
clicked on.
I'm fuzzy on the details, but I know we did try hard to use generated
content. Mjudge might remember more details if you want.
Comment 29•24 years ago
|
||
I have the same problem with smileys (Messenger Composer): they are implemented
the same way as anchor (that is, 2 spans with hided internal span, the internal
span has text I'd like to hide and external span had to be represented as a
background image). I need to have that type of "ascii" images because of
special requirements I have, but the bug is very confusing for end-users,
because they insert smileys with menu and watch nothing (if there is no text).
Please fix that as soon as possiible. Also, pseudo elements don't correctly
work for me too(they show a strange behavior). Thank you.
Updated•24 years ago
|
Whiteboard: [Hixie-P2] (second of two remaining inline box model bug)
Comment 30•24 years ago
|
||
Nominating nsbeta1 as this affects Im in commercial release per Anatoliya
See Bugscape bug http://bugscape.netscape.com/show_bug.cgi?id=3967
Keywords: nsbeta1
Comment 32•24 years ago
|
||
Wow, an obscure inline box model bug is being prioritised! I like! ;-)
| Assignee | ||
Comment 33•24 years ago
|
||
Not obscure now - the Editor and AIM need it!
| Assignee | ||
Updated•24 years ago
|
Priority: P3 → P2
Comment 34•24 years ago
|
||
Just one of the unexpected bonuses of using Gecko for UI! ;-)
| Assignee | ||
Comment 35•24 years ago
|
||
I have a patch for this, but I cannot get to either of Ian's or David's tests
tonight for some reason, so I have only tested it lightly. The patch makes
background images appear even if the inline element is empty though, so it fixes
this bug. I'll be testing further to make sure it doesn't break anything else
(help appreciated, as always).
Oh, and to Ian's point earlier (2001-02-22 18:17): I cannot make this fix
standard-mode only because the composer creates quirk-mode documents! Ack.
Attaching patch...
| Assignee | ||
Comment 36•24 years ago
|
||
Comment 37•24 years ago
|
||
| Assignee | ||
Comment 38•24 years ago
|
||
The new test that Ian attached renders the same before and after the patch. I
think that placeholders are handled specially in the layout (i.e. they are
treated as placeholders and not added into the lines area) - but I am double
checking that now.
Comment 39•24 years ago
|
||
Testcases I can get to:
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=25982
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=28258
http://www.bath.ac.uk/%7Epy8ieh/internet/eviltests/lineheight1.html
http://www.bath.ac.uk/%7Epy8ieh/internet/eviltests/lineheight2.html
http://www.bath.ac.uk/%7Epy8ieh/internet/eviltests/lineheight3.html
http://www.bath.ac.uk/%7Epy8ieh/internet/eviltests/lineheight4.html
http://www.bath.ac.uk/%7Epy8ieh/internet/eviltests/lineheight6.html
http://www.bath.ac.uk/%7Epy8ieh/internet/eviltests/lineheight7.html
http://www.bath.ac.uk/%7Epy8ieh/internet/eviltests/emptyinline.html
| Assignee | ||
Comment 40•24 years ago
|
||
OK, all of the tests listed are the same with and without the patch (except for
the first which needs the patch to pass). (I could not get the 'Ahem' font
however, so I'm not sure if some of those eviltests were valid or not.)
This patch is ready for review, please.
Thanks so much for the tests, Ian.
Comment 41•24 years ago
|
||
The Ahem font is now at:
http://style.cleverchimp.com/junk/AHEM____.TTF (Windows)
http://style.cleverchimp.com/junk/Ahem.ps (Unix)
http://style.cleverchimp.com/junk/Ahem.sit (Mac)
Comment 42•24 years ago
|
||
In kipp's cvs annotation that looks relevant to this line (r3.41), he mentions
that this fixes bug 12910. Unfortunately, that bug looks like something
completely unrelated, so I suspect bug dyslexia when kipp entered the comment.
Worse, it looks like bugzilla has forgotten all of kipp's resolved bugs (grr),
so I can't even track down what he might have thought he fixed.
Anyway, I'm a bit worried that this is going to regress something...
All of kipp's bugs were transferred to buster. (There may even be two
buster@netscape.com accounts, with one of them being what used to be kipp's...)
Comment 44•24 years ago
|
||
Here are the bugs kipp marked fixed on the day that he checked in revision 3.41
of nsLineLayout.cpp:
bug 4803 Text overflows within table, column border elongated
bug 7352 Image layouts created by piecing together images in tables
bug 10496 Broken breaking-spaces should not be rendered
bug 11932 problems with margin calculations on blocks with wider width than p...
bug 12709 right-floating image makes its cell expand
bug 13553 mozilla0.8 Table doesn't render properly
bug 14171 ran viewer under purify, got UMR in nsFrameConstructorState::PushFl...
Here are relevant test cases (in no particular order) from these bugs. None of
them should change behaviour between being with or without the fix to this bug:
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=1422
http://www.prometheus-music.com/gecko/ivillage6.html
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=1550
http://www.fas.harvard.edu/~dbaron/css/test/sec100303
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=992
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=1831
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=1846
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=1892
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=1893
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=1635
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=23496
Assuming none of these break, I would be pretty confident that kipp would be
happy to let us check this in. Of course, we could just call him and ask him
for his advice! ;-)
| Assignee | ||
Comment 45•24 years ago
|
||
Ian, thanks so much for providing these test cases! I ran each of them with and
without the patch and they look the same - i.e. none of them broke. I am happy
about this ;)
However, I am not ruling out the possibility for other cases that may now break.
I feel that the layout code is pretty fragile (wrt floaters especially), and the
comment about impact to floaters is particularly alerting. However, if we do
regress something with regard to floater placement or margins or whatever, I
think we need to address it correctly and not simply make empty inlines take up
no space, in violation of the CSS1 specification. In other words, I'd be willing
to take the heat and fix any regressions we run across. Chris, Ian, whaddayathink?
Comment 46•24 years ago
|
||
Sounds like a plan. [s]r=waterson
Comment 47•24 years ago
|
||
attinasi: hey, if you want to take the heat I'm all for it. ;-)
| Assignee | ||
Comment 48•24 years ago
|
||
Table regression tests passed fine: only 5 false positives that all look
identical.
karnaze said he would r= if the table regression tests passed, so assuming
r=karnaze
| Assignee | ||
Comment 49•24 years ago
|
||
Fixed. nsLineLayout.cpp ver. 3.95
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Comment 51•24 years ago
|
||
Looks good to me too.
You need to log in
before you can comment on or make changes to this bug.
Description
•