← Back to team overview

kicad-developers team mailing list archive

Re: Strange eeschema behavior at zoom 0.7


On 04/02/2011 10:57 AM, jean-pierre charras wrote:
> Le 01/04/2011 19:33, Dick Hollenbeck a écrit :
>>>>> Require a wxWidgets version that works?  Seems especially do-able on MS
>>>>> Windows, where the builder person can pick what wxWidgets version to compile
>>>>> (the *required* version.)
>>>>> So based on my limited information, a path to success on MS Windows is to
>>>>> fix what else is wrong with wxWidgets 2.9.x, and get THIS zoom fix for free.
>>>>> Since the MS Windows builder person has to compile the wxWidgets library, it
>>>>> can be patched before compiling quite easily, as a means of fixing the other
>>>>> issues.
>>>>> My $ 0.02
>>>> If it were easy to do a static link of Kicad to a debug build of the
>>>> wxWidgets library, then:
>>>> If so, a person could step into the library from Kicad and maybe see what's
>>>> up with the floating point comma issue.  That seems like a patch or fix that
>>>> needs to happen in any case.
>>>> Dick
>>> Dick,
>>> Your fix is the best fix found until now.
>>> So I switch to wxWidgets 2.9.1 (wxWidgets 2.9.2 is expected soon)) at least under Windows.
>>> For me, wxWidgets 2.9.1 works fine.
>> There is specific value in requiring a specific version of wxWidgets.  It
>> provides consistency and predictability.
>> The cost on linux is too high, because package management offers a pre-built
>> wxWidgets.
>> However, the cost on MS Windows is zilch, yielding an attractive
>> cost/benefit ratio on Windows.
>> Besides, why hack up Kicad with "work arounds" when the piece with the bug
>> is already fixed?
>> Getting the exact version of wxWidgets "required" can be made *very easy* by
>> using CMake's "external project" support.  But that means spending a half
>> day embellishing the CMakeLists.txt file specifically for MS Windows developers.
> I believe I found what is wrong in wxWidgets 2.9.1:
> WxWidgets 2.9.1 seems call setlocale( LC_NUMERIC, "" )
> when wxConfig read doubles stored in config, but forget to back to current locale.
> So, setlocale( LC_NUMERIC, "" ) remains after this read.
> So the fix is easy in kicad:
> call SetLocaleTo_Default() after reading a parameter (call to config->Read(..., ...)) if a double is read.

Nice catch!

If you consider this a bug in wxWidgets, maybe someone would be willing to
help by submitting a patch to the wxWidgets folks.

If no one else volunteers, post the patch here to wxWidgets and I'll spend
the time emailing it or whatever.


Follow ups