common controls updown patch
David Elliott
dfe at tgwbd.org
Wed Jan 16 20:13:45 CST 2002
On 2002.01.14 14:45 Shane Shields wrote:
> hi all
>
> this is just a little patch to fix the UPDOWN_GetArrowRect function where
> the
> midpoint is calculated by adding 1 to odd numbers. before it just added 1
> to
> every number now it tests for odd numbers before adding.
>
> Shane
>
> Thanks Dan for the tips
>
> Changelog:
>
> Shane Shields locutus at all.at
>
> updown.c UPDOWN_GetArrowRect function
> added odd number checking
> --- ./dlls/comctl32/updown.c.orig Mon Jan 14 20:35:07 2002
> +++ ./dlls/comctl32/updown.c Sun Jan 13 17:28:18 2002
> @@ -1,4 +1,4 @@
> -/*
> +/*
> * Updown control
> *
> * Copyright 1997 Dimitrie O. Paun
> @@ -176,14 +176,16 @@
> * round the uneven numbers by adding 1.
> */
> if (dwStyle & UDS_HORZ) {
> - len = rect->right - rect->left + 1; /* compute the width */
> + len = rect->right - rect->left; /* compute the width */
> + if (len % 2 != 0 ) len ++; /* if not an even number then add 1 */
> if (incr)
> - rect->left = rect->left + len/2;
> + rect->left = rect->left + len/2;
> else
> rect->right = rect->left + len/2;
> }
> else {
> - len = rect->bottom - rect->top + 1; /* compute the height */
> + len = rect->bottom - rect->top; /* compute the height */
> + if (len % 2 != 0 ) len ++; /* if not an even number then add 1 */
> if (incr)
> rect->bottom = rect->top + len/2;
> else
>
The remainder of any even number divided by two is 0, the remainder of any
odd number divided by two is 1.
Knowing this doesn't:
len+=(len%2);
make more sense. Leave the comment as is for clarity if you wish.
-Dave
More information about the wine-devel
mailing list