- 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