Closed
Bug 1117227
Opened 10 years ago
Closed 10 years ago
text-overflow doesn't work in vertical writing mode
Categories
(Core :: Layout: Text and Fonts, defect)
Core
Layout: Text and Fonts
Tracking
()
RESOLVED
FIXED
mozilla40
Tracking | Status | |
---|---|---|
firefox40 | --- | fixed |
People
(Reporter: jfkthame, Assigned: xidorn)
References
(Blocks 1 open bug)
Details
Attachments
(6 files)
1.30 KB,
patch
|
jfkthame
:
review+
|
Details | Diff | Splinter Review |
43.01 KB,
patch
|
roc
:
review+
|
Details | Diff | Splinter Review |
2.46 KB,
patch
|
roc
:
review+
|
Details | Diff | Splinter Review |
1.93 KB,
patch
|
jfkthame
:
review+
|
Details | Diff | Splinter Review |
8.78 KB,
patch
|
jfkthame
:
review+
|
Details | Diff | Splinter Review |
6.78 KB,
patch
|
jfkthame
:
review+
|
Details | Diff | Splinter Review |
data:text/html,
<div style="writing-mode:vertical-lr; height:100px;
white-space:pre;overflow:hidden;
text-overflow:ellipsis">the quick brown fox
Assignee | ||
Updated•10 years ago
|
Assignee: nobody → quanxunzhen
Assignee | ||
Comment 1•10 years ago
|
||
When I look into it more deeply, I found it is a big project which is not limited to TextOverflow files, but also related to nsTextFrame's decoration drawing, which I'm not sure whether you are working on. So drop for now.
Assignee: quanxunzhen → nobody
Reporter | ||
Updated•10 years ago
|
Blocks: enable-writing-mode-release
Assignee | ||
Updated•10 years ago
|
Assignee: nobody → quanxunzhen
Assignee | ||
Comment 2•10 years ago
|
||
Attachment #8596321 -
Flags: review?(jfkthame)
Assignee | ||
Comment 3•10 years ago
|
||
Attachment #8596322 -
Flags: review?(roc)
Assignee | ||
Comment 4•10 years ago
|
||
Attachment #8596324 -
Flags: review?(roc)
Assignee | ||
Comment 5•10 years ago
|
||
Attachment #8596325 -
Flags: review?(jfkthame)
Assignee | ||
Comment 6•10 years ago
|
||
Attachment #8596326 -
Flags: review?(jfkthame)
Assignee | ||
Comment 7•10 years ago
|
||
Attachment #8596328 -
Flags: review?(jfkthame)
Assignee | ||
Comment 8•10 years ago
|
||
Comment on attachment 8596322 [details] [diff] [review]
patch 2 - Convert TextOverflow to logical coordinate
Review of attachment 8596322 [details] [diff] [review]:
-----------------------------------------------------------------
::: layout/generic/TextOverflow.h
@@ +110,4 @@
> };
>
> + mozilla::LogicalRect
> + GetLogicalScrollableOverflowRectToBlock(nsIFrame* aFrame) const
GetLogicalScrollableOverflowRectRelativeToBlock
@@ +146,5 @@
> * inline-level frames that are clipped by the current marker width
> */
> void ExamineFrameSubtree(nsIFrame* aFrame,
> + const mozilla::LogicalRect& aContentArea,
> + const mozilla::LogicalRect& aInsideMarkersArea,
Put a typedef mozilla::LogicalRect LogicalRect; in TextOverflow to avoid too many mozilla:: prefixes
Attachment #8596322 -
Flags: review?(roc) → review+
Attachment #8596324 -
Flags: review?(roc) → review+
Reporter | ||
Comment 10•10 years ago
|
||
Comment on attachment 8596322 [details] [diff] [review]
patch 2 - Convert TextOverflow to logical coordinate
Review of attachment 8596322 [details] [diff] [review]:
-----------------------------------------------------------------
::: layout/generic/TextOverflow.cpp
@@ +97,5 @@
> f->GetType() != nsGkAtoms::scrollFrame) {
> f = f->GetParent();
> }
> + auto overflow = aFrame->GetWritingMode().IsVertical() ?
> + f->StyleDisplay()->mOverflowY : f->StyleDisplay()->mOverflowX;
This looks like it'll crash trying to get StyleDisplay() if f is null. (It used to be protected by the !f test.)
Assignee | ||
Comment 11•10 years ago
|
||
(In reply to Jonathan Kew (:jfkthame) from comment #10)
> Comment on attachment 8596322 [details] [diff] [review]
> patch 2 - Convert TextOverflow to logical coordinate
>
> Review of attachment 8596322 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: layout/generic/TextOverflow.cpp
> @@ +97,5 @@
> > f->GetType() != nsGkAtoms::scrollFrame) {
> > f = f->GetParent();
> > }
> > + auto overflow = aFrame->GetWritingMode().IsVertical() ?
> > + f->StyleDisplay()->mOverflowY : f->StyleDisplay()->mOverflowX;
>
> This looks like it'll crash trying to get StyleDisplay() if f is null. (It
> used to be protected by the !f test.)
Good catch!
Reporter | ||
Comment 12•10 years ago
|
||
Comment on attachment 8596321 [details] [diff] [review]
patch 1 - Add IntersectRect method to LogicalRect
Review of attachment 8596321 [details] [diff] [review]:
-----------------------------------------------------------------
::: layout/generic/WritingModes.h
@@ +1732,5 @@
> }
>
> + /**
> + * Set *this to be the rectangle containing the intersection of aRect1
> + * and aRect2, return whether the intersection is empty.
s/empty/non-empty/
Attachment #8596321 -
Flags: review?(jfkthame) → review+
Reporter | ||
Updated•10 years ago
|
Attachment #8596325 -
Flags: review?(jfkthame) → review+
Reporter | ||
Comment 13•10 years ago
|
||
Comment on attachment 8596326 [details] [diff] [review]
patch 5 - Fix orientation of ellipsis
Review of attachment 8596326 [details] [diff] [review]:
-----------------------------------------------------------------
r=me with the mask fixed, see below.
::: gfx/thebes/gfxTextRun.cpp
@@ +2580,2 @@
> if (mCachedEllipsisTextRun &&
> + (mCachedEllipsisTextRun->GetFlags() & ~TEXT_ORIENT_MASK) == aFlags &&
I don't think you really wanted to apply ~ to TEXT_ORIENT_MASK here!
Attachment #8596326 -
Flags: review?(jfkthame) → review+
Assignee | ||
Comment 14•10 years ago
|
||
(In reply to Jonathan Kew (:jfkthame) from comment #13)
> Comment on attachment 8596326 [details] [diff] [review]
> patch 5 - Fix orientation of ellipsis
>
> Review of attachment 8596326 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> r=me with the mask fixed, see below.
>
> ::: gfx/thebes/gfxTextRun.cpp
> @@ +2580,2 @@
> > if (mCachedEllipsisTextRun &&
> > + (mCachedEllipsisTextRun->GetFlags() & ~TEXT_ORIENT_MASK) == aFlags &&
>
> I don't think you really wanted to apply ~ to TEXT_ORIENT_MASK here!
Ahh, silly issue... I think initially I wanted to write "& ~TEXT_IS_PERSISTENT", then I changed my mind to "& TEXT_ORIENT_MASK", then it became this...
So which one do you think is better?
Reporter | ||
Updated•10 years ago
|
Attachment #8596328 -
Flags: review?(jfkthame) → review+
Reporter | ||
Comment 15•10 years ago
|
||
I think I prefer "& TEXT_ORIENT_MASK" here. It's easy to relate to the assertion just above, which makes it clear no other flags are supposed to be passed; so we're only interested in this field of the flags word.
Comment 16•10 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/b76fcf24a2f7
https://hg.mozilla.org/integration/mozilla-inbound/rev/303979c9c80d
https://hg.mozilla.org/integration/mozilla-inbound/rev/34d73ad5090a
https://hg.mozilla.org/integration/mozilla-inbound/rev/d33657df2b28
https://hg.mozilla.org/integration/mozilla-inbound/rev/18d118c05f8a
https://hg.mozilla.org/integration/mozilla-inbound/rev/58f1b4f600d4
Comment 17•10 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/b76fcf24a2f7
https://hg.mozilla.org/mozilla-central/rev/303979c9c80d
https://hg.mozilla.org/mozilla-central/rev/34d73ad5090a
https://hg.mozilla.org/mozilla-central/rev/d33657df2b28
https://hg.mozilla.org/mozilla-central/rev/18d118c05f8a
https://hg.mozilla.org/mozilla-central/rev/58f1b4f600d4
Status: NEW → RESOLVED
Closed: 10 years ago
status-firefox40:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla40
You need to log in
before you can comment on or make changes to this bug.
Description
•