Possibility of non-blocking input fields

Asked by TomCC

Would it be possible to make input dialogs non-blocking?

Current (5219) state is that having a dialog open in one program (for example, editing pad properties in Footprint editor), it's impossible to cross-reference it with info from another (for example, going to component viewer to open the linked datasheet or check pin numbers): it's possible to switch to the other program if it's already open, but it's unresponsive. Furthermore, if multiple programs are open, it becomes a hunting trip to find which one is blocking, as (at least on windows) the dialog is not visible on taskbar previews.

How to reproduce:
0. Open KiCAD
1. Open Footprint editor
2. Open Dimensions -> Pad Settings
3. Try to open any other program from KiCAD project manager

What happens:
The project manager (and any other already open program) is unresponsive

What should happen:
I can do stuff.

Question information

Language:
English Edit question
Status:
Answered
For:
KiCad Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Wayne Stambaugh (stambaughw) said :
#1

This was a design decision made when the transition from stand alone applications to the top level windows being run in the same process. While I agree with you assessment that modeless dialogs would be better under certain circumstances, this would require rewriting almost every single dialog box due to the design choices made by the developers (not this one). We currently either call EndModal() or EndQuasimodal() (a state between full modal and modeless which is an improvement over modal) when the OK or Cancel buttons are clicked which effectively make the dialogs modal or quasimodal. The real problem is the way that data is transferred to and from the dialog controls. The preferred method using wxWidgets it to use validators. The beauty of validators is that you can define the dialog any way you want without issues. If you were to create a modeless dialog with virtually any of our dialog boxes, I'm sure bad things would happen (although it haven't tried it) when you dismissed the dialog. Also, modeless dialogs require a great deal of care to make sure you don't get any strange interactions due to concurrency. Long story short, it would be a difficult task but well designed and well written patches will always be considered.

Can you help with this problem?

Provide an answer of your own, or ask TomCC for more information if necessary.

To post a message you must log in.