Closed
Bug 24676
Opened 25 years ago
Closed 20 years ago
[BORDER ROUNDED]Need -moz-outline-radius
Categories
(Core :: CSS Parsing and Computation, defect)
Core
CSS Parsing and Computation
Tracking
()
RESOLVED
FIXED
Future
People
(Reporter: hangas, Assigned: aaronlev)
References
Details
(Keywords: css-moz, testcase)
Attachments
(3 files)
(deleted),
text/html
|
Details | |
(deleted),
patch
|
bzbarsky
:
review+
roc
:
superreview+
|
Details | Diff | Splinter Review |
(deleted),
text/html
|
Details |
We need a -moz-outline-radius feature (similar to -moz-border-radius) to support
the round outline required in the spec for radio buttons. We need to outline the
radio buttons with rounded corners.
Comment 3•25 years ago
|
||
Style is done. We need to do the rendering. Maybe Don Cone will take care of it?
Comment 4•25 years ago
|
||
hangas/german: the '-moz-outline-radius' feature has a dependency on bug 9809. If
you want it for beta, you will have to talk to Rod and Troy or lobby the PDT
team.
Reassigned to dcone for now. The bug may be pushed to a later milestone if the
dependency is not resolved.
Assignee: pierre → dcone
Status: ASSIGNED → NEW
Updated•25 years ago
|
Status: NEW → ASSIGNED
Updated•25 years ago
|
Summary: Need -moz-outline-radius feature → [BORDER ROUNDED]Need -moz-outline-radius feature
Updated•25 years ago
|
Target Milestone: M14 → M15
Comment 5•25 years ago
|
||
Actually outline should follow the exact outline of an element, so an outline
radius is not necesairy, it should do that automatically
Comment 7•25 years ago
|
||
Updated•25 years ago
|
Target Milestone: M15 → M16
Comment 8•25 years ago
|
||
The feature has been added, but there are problems that come with this, like
rendering outside of the Frame, etc. Rod can you comment on this or tell me
what should happend with this now.
Assignee: dcone → rods
Status: ASSIGNED → NEW
Summary: [BORDER ROUNDED]Need -moz-outline-radius feature → [BORDER ROUNDED]Need -moz-outline-radius
Target Milestone: M17 → M20
Comment 9•25 years ago
|
||
This bug has been marked "future" because at this time it has been determined
that it is not absolutely critical for RTM (Release To Manufacturing). If the
reporter and anyone else believe it is necessary to fix this before shipping
Seamonkey 1.0, please describe your issue in the bug.
Status: NEW → ASSIGNED
Target Milestone: M20 → Future
Comment 10•25 years ago
|
||
rods: According to dcone, this has been half-implemented. We cannot ship with
a half implemented feature, surely!
Comment 11•25 years ago
|
||
Are you sure dcone said it was half-implemented? In my understanding, it was
fully implemented but subject to the same clipping problems as the normal
outline.
Comment 12•25 years ago
|
||
Well, the ordinary outline is just as incomplete, precisely because of these
clipping and the repainting problems...
Whichever way you look at it, we can't ship with these outline bugs still
present. Either outline (and -moz-outline-radius) has to go, or outline has
to be fixed.
Comment 13•25 years ago
|
||
*** Bug 15323 has been marked as a duplicate of this bug. ***
Comment 14•25 years ago
|
||
I don't think we can disable outlines: they are used to give feedback when
mousing over links. My understanding is that they work for mouseover but not for
more persistent uses such as indicating the active and focus states.
Comment 15•25 years ago
|
||
I guess I'm several weeks late... Outlines are no longer used for links and they
don't seem to work at all anyway. I have been confused by the declarations in
html.css. Rod, can you confirm that outlines are disabled? If so, we can update
html.css.
Reporter | ||
Comment 16•24 years ago
|
||
Because of the fact that the moz-border-outline is not working very well and this
bug was not fixed in time for the implementation of our first two skins, we have
found work-arounds for this issue. Leaving this feature out of the product at
this point is just fine with me.
Comment 17•24 years ago
|
||
Shall we just mark this WONTFIX? *We* don't need it, and in a future version we
can get the W3C to find a standards compliant way of doing things.
Comment 18•24 years ago
|
||
Why WONTFIX? There is no point in removing the code, the outlines have been
disabled. The day 'outline' works, 'outline_radius' will work too and if there is
a standard way to do it, we'll adopt it.
Comment 19•24 years ago
|
||
I didn't realise any code had been written for this at all. Of course I do not
suggest removing code already written.
'outline' has not been completely disabled, BTW, see bug 9816.
Comment 20•24 years ago
|
||
As per meeting with ChrisD yesterday, taking QA.
QA Contact: chrisd → py8ieh=bugzilla
This is required for Mac-style focus outlines.
Blocks: 50804
Comment 22•24 years ago
|
||
Note: per the spec, outlines may not be square. Thus implementing this is much
more difficult than implementing the equivalent border code, which is
guarenteed to only have 4 corners.
Comment 23•24 years ago
|
||
leaving as P3/Future
Updated•23 years ago
|
Priority: P3 → --
Comment 24•22 years ago
|
||
This shouldn't be necessary in order to get the correct outline for a radio
button. Outlines don't have to be rectangular, so as long as the outline code
is aware of the geometry of the radio button, a simple outline will have the
correct shape. Wontfix?
Updated•21 years ago
|
Assignee | ||
Comment 25•20 years ago
|
||
Now that bug 151375 is fixed, outlines draw outside of the current frame.
A fix for this bug would be useful for nice focus outlines, esp. on Mac.
I notice that the outline radius is not getting stored where it's supposed to,
in mOutlineRadius.
Assignee | ||
Comment 26•20 years ago
|
||
Assignee: dbaron → aaronleventhal
Status: NEW → ASSIGNED
Assignee | ||
Comment 27•20 years ago
|
||
Assignee | ||
Updated•20 years ago
|
Attachment #153248 -
Flags: review?(roc)
Assignee | ||
Comment 28•20 years ago
|
||
Boris asked for a real world case where you wouldn't want the radius to be the
same on all four corners. Here it is:
http://bugzilla.mozilla.org/attachment.cgi?id=153283&action=view
(Boris, sorry for CC'ing you without being asked to)
Comment 29•20 years ago
|
||
The problem remains that an outline can have more than 4 corners...
Assignee | ||
Comment 30•20 years ago
|
||
(In reply to comment #29)
> The problem remains that an outline can have more than 4 corners...
In most cases it won't.
In the cases where it does, we can make all top left corners use the
-moz-outline-radius-topleft, all top right corners would use
-moz-outline-radius-topright, etc.
We'd fix that at the same time that we fix the fact that outlines aren't
globbing together.
Comment 31•20 years ago
|
||
Consider an outline shaped like so:
___________________
| ____|
___| |
|_________________|
This outline has 8 corners of 6 different types. I'm not clear on how you plan
to implement that with 4 different corner types stored in the style struct...
Assignee | ||
Comment 32•20 years ago
|
||
(In reply to comment #31)
How about this? Each corner uses the property associated with the corner of same
orientation.
TL___________________TR
| ____|
TL_|BR TL| BR
|_________________|
BL BR
This allows use 2 things:
1) to use -moz-border-radius on individual corners when it matters most -- the
rectangular case. For tabbed and segmented widgets we may need individual corner
radii for focus outlines.
2) to do something that's not too far fetched for the edge case. For spans
containing flowing text it's very unlikely that people will need different
border radii for each corner. They would likely be consistent for those cases.
Comment 33•20 years ago
|
||
I'm just not sure that it makes sense to label the two different types of
corners you called "BR" the same type..
Assignee | ||
Comment 34•20 years ago
|
||
Yes but does that mean we shouldn't allow use of different radii on different
corner types at all? Nothing really bad will happen in the overlapping
non-rectangular case, and 99.9% of the time people wouldn't be needing different
radii then.
What's your suggestion? Throw out that capability because of the unclear edge case?
(In reply to comment #33)
> I'm just not sure that it makes sense to label the two different types of
> corners you called "BR" the same type..
Comment 35•20 years ago
|
||
No, my suggestion is to clearly think about what we do and do not want to
support and then implement it. I have no principal objection to the suggestion
in comment 32 (or any other suggestion, really), but I'd like to see some consensus.
Here's an algorithm:
-- For each rectangular frame of the element, use the outline-offset and
outline-radii to compute the inside edge of the outline for that frame as a
closed path.
-- Take the union of the interiors of all these closed paths.
-- Stroke along the exterior of that union with the given outline-width.
Comment 37•20 years ago
|
||
In the example in comment 31, that would create a cusp in the outline in the
place where the border goes like:
_____
__|
right? That said, it's the best way to make sense of the specified outline
radii, I guess.
Comment 38•20 years ago
|
||
I'm against separate corner specification.
I think Aaron's example in comment 28 isn't really a good example because the
thing being outlined can't be described using CSS either.
Assuming a small outline-radius, the concave vertices will be right angles.
Comment 40•20 years ago
|
||
dbaron: you could do it using a four-value border-radius.
Assignee | ||
Comment 41•20 years ago
|
||
Sounds like we've reached no consensus. Dbaron, you're the final decision maker
as far as I'm concerned.
Comment on attachment 153248 [details] [diff] [review]
Use code similar to -moz-border-radius in nsRuleNode::ComputeOutlineData
Minusing until we figure this out
Attachment #153248 -
Flags: review?(roc)
Attachment #153248 -
Flags: review-
Comment 43•20 years ago
|
||
OK, a 4-value -moz-outline-radius is acceptable to me.
Assignee | ||
Comment 44•20 years ago
|
||
(In reply to comment #43)
> OK, a 4-value -moz-outline-radius is acceptable to me.
Does this mean this implementation is now relevant again?
http://bugzilla.mozilla.org/attachment.cgi?id=153248&action=view
It allows -moz-outline-radius, or 4 separate values for -moz-outline-topleft,
-topright, -bottomleft and -bottomright.
Or is something different meant by 4-value -moz-outline-radius ?
Assignee | ||
Comment 45•20 years ago
|
||
Comment on attachment 153248 [details] [diff] [review]
Use code similar to -moz-border-radius in nsRuleNode::ComputeOutlineData
This patch is relevant again now that David said a "OK, a 4-value
-moz-outline-radius is acceptable to me."
Attachment #153248 -
Flags: review?
Attachment #153248 -
Flags: review-
Assignee | ||
Updated•20 years ago
|
Attachment #153248 -
Flags: review? → review?(roc)
Comment on attachment 153248 [details] [diff] [review]
Use code similar to -moz-border-radius in nsRuleNode::ComputeOutlineData
I'm not a style system peer so someone else (bz, dbaron) needs to take a look.
It looks right though.
Attachment #153248 -
Flags: superreview+
Attachment #153248 -
Flags: review?(roc)
Attachment #153248 -
Flags: review?(bzbarsky)
Comment 47•20 years ago
|
||
Comment on attachment 153248 [details] [diff] [review]
Use code similar to -moz-border-radius in nsRuleNode::ComputeOutlineData
r=bzbarsky
Attachment #153248 -
Flags: review?(bzbarsky) → review+
Assignee | ||
Comment 48•20 years ago
|
||
Robert, on IRC you said we still needed to do something to
nsComputedDOMStyle.cpp so that outline radius was reclected in the DOM. Does the
review still apply?
Yeah. File a new bug for getComputedStyle not working on -moz-outline-radius.
Assignee | ||
Updated•20 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Comment 50•20 years ago
|
||
Comment on attachment 153248 [details] [diff] [review]
Use code similar to -moz-border-radius in nsRuleNode::ComputeOutlineData
>+// -moz-border-radius: length, percent, inherit
This is outline, not border
>+ { // scope for compilers with broken |for| loop scoping
No need for this here, since there's only one use of |side| in the function.
Assignee | ||
Comment 51•20 years ago
|
||
(In reply to comment #50)
> (From update of attachment 153248 [details] [diff] [review])
> >+// -moz-border-radius: length, percent, inherit
I already caught and fixed that comment
> >+ { // scope for compilers with broken |for| loop scoping
>
> No need for this here, since there's only one use of |side| in the function.
Can I have r+sr= to remove the extra { and } ?
You need to log in
before you can comment on or make changes to this bug.
Description
•