- From: Dirk Schulze <dschulze@adobe.com>
- Date: Fri, 27 Sep 2013 02:48:20 -0700
- To: Simon Pieters <simonp@opera.com>
- CC: Henrik Andersson <henke@henke37.cjb.net>, "Robert O'Callahan" <robert@ocallahan.org>, www-style list <www-style@w3.org>
On Sep 27, 2013, at 10:18 AM, Simon Pieters <simonp@opera.com> wrote: > On Fri, 27 Sep 2013 00:37:32 +0200, Robert O'Callahan > <robert@ocallahan.org> wrote: > >> On Fri, Sep 27, 2013 at 9:44 AM, Henrik Andersson >> <henke@henke37.cjb.net>wrote: >> >>> My point is how the width and right properties change when left and x >>> are set. X changes right, left changes width. >>> >>> One models the moveable rectangle and the other models the stretchy >>> rectangle. >>> >> >> I think making setting of x/y behave differently from top/left is just >> super confusing. Imagine trying to explain to authors with a straight >> face >> why "x" is different from "left". It would be simpler to make them pure >> aliases and pick a consistent mutation behavior. > > So we have three options: > > (a) x and left change width. > (b) x and left change right. > (c) x changes right, left changes width. > > For (a), the following code won't do what it looks like it does: > > function resizeAndRepositionRect(rect, props) { > rect.width = props.width; > rect.height = props.height; > rect.x = props.x; > rect.y = props.y; > } > > The width will be different from what it was set to. > > Similarly for (b): > > function setEdgesForRect(rect, props) { > rect.top = props.top; > rect.right = props.right; > rect.bottom = props.bottom; > rect.left = props.left; > } > > Here, right won't be what it was set to. > > (c) lets authors either work with x/y/width/height or > top/right/bottom/left and get the values they were set to. > > > I guess there's a fourth option: > > (d) Make top/right/bottom/left readonly and only allow mutating > x/y/width/height. > > > Personally I think we shouldn't do (a) or (b), and I don't think (c) is > that confusing. I'm OK with either (c) or (d). I disagree with (a). I don't think (a) is an option since it is incompatible with SVGRect which does not change 'width'. I would slightly prefer (c) actually, since it might be strange for some authors that 'right' changes as well when they set 'left'. But personally I can live with all options but (a). Greetings, Dirk > > -- > Simon Pieters > Opera Software
Received on Friday, 27 September 2013 09:49:03 UTC