kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #36798
Re: KIDIALOG broken
On 7/23/2018 2:00 PM, jp charras wrote:
> Le 23/07/2018 à 18:29, Wayne Stambaugh a écrit :
>> Orson,
>>
>> On 7/23/2018 12:03 PM, Maciej Sumiński wrote:
>>> Hi Wayne,
>>>
>>> On 07/23/2018 05:40 PM, Wayne Stambaugh wrote:
>>>> In the process of fixing this bug
>>>> https://bugs.launchpad.net/kicad/+bug/1782708 I discovered that the
>>>> KIDIALOG object called when editing an externally defined environment
>>>> variable will completely lock up kicad on windows. Clicking the dialog
>>>> OK button or hitting the escape keep does not close the dialog and I
>>>> have to manually kill the running kicad process. When I convert this
>>>> code over to use wxRichMessageDialog directly, it works as expected.
>>>> It's possible that wxRichMessageDialog::ShowModal() does not like being
>>>> overridden. Will someone check to see if this issue occurs on macos or
>>>> linux?
>>>
>>> I have just tried to recreate the mentioned bug report on Linux, but it
>>> works fine here. I have successfully changed the path, got the dialog
>>> displayed and confirmed everything by clicking OK.
>>
>> I confirmed with a debugger that it is definitely hanging on the
>> wxRichMessageDialog::ShowModal() call. This may not be a viable
>> solution on windows. Technically ShowModal() is implemented in
>> wxDialog. Calling wxDialog::ShowModal() doesn't work either. I can
>> change this to use wxRichMessageDialog rather than KIDIALOG to fix the
>> bug but that doesn't fix every place else KIDIALOG is being used.
>>
>
> Hi Wayne,
>
> Only FYI, I can reproduce this hang on wxWidgets 3.0.4, but not on 3.1.1
>
> It looks like a wxWidgets bug fixed in 3.1.1 version (I am using this version for my daily work on
> Kicad on Windows when I do not need the wxPython support).
I wondered about that. Orson may be using a later version of wxWidgets.
I'm currently using 3.0.4. I only use 3.1 when I'm messing around with
the gtk3 fix stuff.
A quick reminder developers, 3.0 is the currently supported version of
wxWidgets. Please test all new code against this version before pushing
code to the dev branch.
>
>>>
>>>> Also, what is the purpose of the "Do not show this message again"
>>>> checkbox when it's only for the current session? Generally speaking
>>>> checking this option would not show the message forever. This seems
>>>> like it would be confusing to the user.
>>>
>>> It is the same kind of relief you get with wxWidgets asserts. If there
>>> is a window that will keep nagging you because you have done something
>>> wonky on purpose, then you have a choice to ignore a warning dialog
>>> instead of straining your finger. I have added this option to handle
>>> warnings about malformed polygons, as without do-not-show-again checkbox
>>> you can spend a lot of time closing warnings before you even get a
>>> chance to fix polygons.
>>
>> This is fine but I think users will expect the dialog to be gone forever
>> not just the current session.
>>
>>>
>>> Cheers,
>>> Orson
>>>
>>>> Cheers,
>>>>
>>>> Wayne
>
Follow ups
References