[PATCH weston] cairo-util: fix shadows for small clients

Marek Chalupa mchqwerty at gmail.com
Wed Oct 29 03:09:05 PDT 2014


Hi,

thanks for review!

On 27 October 2014 18:50, Bill Spitzak <spitzak at gmail.com> wrote:

>
>
> On 10/15/2014 01:16 AM, Marek Chalupa wrote:
>
>>  +                      shadow_height = height / 2;
>> +
>> +                       /* when the height is odd, we need some part of
>> the
>> +                        * shadow to be one pixel higher. Let's choose the
>> +                        * upper one */
>> +                       if (height % 2 != 0 && !fy)
>> +                               ++shadow_height;
>>
>
> This does the same thing:
>                         shadow_height = (height + (fy ? 0 : 1)) / 2;
>

Thinking about that, fy is always 0 or 1, so it will work even without the
ternary operator. And if we want to be really sure that fy is 0 or 1 (even
when
somebody will change its values range) we can do:

    shadow_height = (height + !fy) / 2;

It definitely looks better than the former code.


> If there is any chance height is negative you want to use >>1 rather than
> /2. This is because it always rounds in the same direction (down rather
> than toward zero). I don't think negative height happens here, however.
>

Good point. Hypothetically, the height can be negative, because its given
from the client - but then the mistake is on the client's side and it would
break much more things than one-pixel error in shadow. Maybe we should add
a check for negative values, but that belongs in another patch. I gonna go
for /2 because it does the same thing (assuming correct input) and it is
more readable.


> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>

Thanks!
Marek
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20141029/8513747e/attachment.html>


More information about the wayland-devel mailing list