Modal dialog opened up under child process prevents operations in main Kicad

Bug #1496617 reported by Jason Whiteman
56
This bug affects 9 people
Affects Status Importance Assigned to Milestone
KiCad
Fix Released
Low
Unassigned

Bug Description

Testing using Pcbnew (2015-09-05 BZR 6158, Git 8f14e9e) under Win 10 x64 OS.

Steps to reproduce:

1) Launch Kicad main program
2) Launch Eeschema from Kicad main
3) Under Eeschema, bring up File -> Plot -> Plot modal dialog
4) Return to Kicad main and try to use interface (scroll, through the file tree, load Pcbnew with icon, etc). Can't me done due to modal dialog in Eeschema.

Expected behavior is that this would not lock out the Kicad main interface.

Closing down the plot dialog box allows Kicad main to function again.

Revision history for this message
Stefan (stol) wrote :

Additional information, tested under ubuntu revision 6223 (2015-09-26)

It is possible to start the other applications from the kicad main menu, if the icons are clicked
The menus are not working, that is, it is not possible to start for example the calculator under the "Tools" menu
The newly created windows can not be closed, neither with the X or the menu "Close"

These "locks" are removed if the plot window is closed

Changed in kicad:
importance: Undecided → Low
Revision history for this message
eelik (eelik) wrote :

I didn't find a more general bug report for this, maybe this is a good place to comment. This behavior affects not only "main Kicad" but other subprograms, too, and from other subprograms. For example if I open Part Library Editor, open pcbnew and open Preferences->Component Libraries in library editor I can't use pcbnew. This feels very stupid from usability point of view. See for example https://www.nngroup.com/articles/modal-nonmodal-dialog/. Modal is rarely needed, I feel it's overused in Kicad. A non-modal or stay-on-top-of-main-window-but-still-allow-interaction would often be good alternatives.

The least which could be done would be to pop up the modal window when the user tries to interact with the other subprogram. Not it feels like it just has frozen.

Changed in kicad:
status: New → Triaged
Jeff Young (jeyjey)
summary: - Modal dialog opened up under child process locks up main Kicad
+ Modal dialog opened up under child process prevents operations in main
+ Kicad
Revision history for this message
Jeff Young (jeyjey) wrote :

The general case of this isn't likely to get fix. But it strikes me that there are some dialogs that are more likely to be annoying in this respect -- such as plot, where you often want to go back to the main kicad window to open up the file just plotted.

In this particular case (and likely others), there's not much reason for the plot dialog to be modal. (One caveat would be whether launching the modal DRC dialog from a modeless Plot dialog would gum up the works....)

Revision history for this message
Jeff Young (jeyjey) wrote :

I couldn't find any others that were "obvious" candidates. I've made the Plot dialog modeless and will close this bug with it.

If you discover another *specific* dialog that should be modeless, feel free to re-open it.

Revision history for this message
Jeff Young (jeyjey) wrote :
Revision history for this message
Wayne Stambaugh (stambaughw) wrote : Re: [Bug 1496617] Re: Modal dialog opened up under child process prevents operations in main Kicad

@Jeff, before I commit this patch. Please take a look at this bug report:

https://bugs.launchpad.net/kicad/+bug/1746321

I was planning on adding another gerber plot option to refill the zones
(disabled by default) before plotting to appease users who think this
should happen automatically. I am concerned that making the plot dialog
modeless will make that task far more difficult since there will have to
be a way to run the refill algo from the plot dialog and refresh the
board view. What might happen if a user runs the refill and quick
launches a zone refill from the board editor at the same time?

On 2/22/2018 10:27 AM, Jeff Young wrote:
> ** Patch added: "0005-Make-plot-dialog-modeless.patch"
> https://bugs.launchpad.net/kicad/+bug/1496617/+attachment/5060397/+files/0005-Make-plot-dialog-modeless.patch
>

Revision history for this message
Jeff Young (jeyjey) wrote :

@Wayne, wouldn’t we already have the same issue with DRC? That dialog is modeless, and runs zone fill as part of the DRC algorithm.

> On 22 Feb 2018, at 16:51, Wayne Stambaugh <email address hidden> wrote:
>
> @Jeff, before I commit this patch. Please take a look at this bug
> report:
>
> https://bugs.launchpad.net/kicad/+bug/1746321
>
> I was planning on adding another gerber plot option to refill the zones
> (disabled by default) before plotting to appease users who think this
> should happen automatically. I am concerned that making the plot dialog
> modeless will make that task far more difficult since there will have to
> be a way to run the refill algo from the plot dialog and refresh the
> board view. What might happen if a user runs the refill and quick
> launches a zone refill from the board editor at the same time?
>
> On 2/22/2018 10:27 AM, Jeff Young wrote:
>> ** Patch added: "0005-Make-plot-dialog-modeless.patch"
>> https://bugs.launchpad.net/kicad/+bug/1496617/+attachment/5060397/+files/0005-Make-plot-dialog-modeless.patch
>>
>
> --
> You received this bug notification because you are a member of KiCad Bug
> Squad, which is subscribed to KiCad.
> https://bugs.launchpad.net/bugs/1496617
>
> Title:
> Modal dialog opened up under child process prevents operations in main
> Kicad
>
> Status in KiCad:
> Triaged
>
> Bug description:
> Testing using Pcbnew (2015-09-05 BZR 6158, Git 8f14e9e) under Win 10
> x64 OS.
>
> Steps to reproduce:
>
> 1) Launch Kicad main program
> 2) Launch Eeschema from Kicad main
> 3) Under Eeschema, bring up File -> Plot -> Plot modal dialog
> 4) Return to Kicad main and try to use interface (scroll, through the file tree, load Pcbnew with icon, etc). Can't me done due to modal dialog in Eeschema.
>
> Expected behavior is that this would not lock out the Kicad main
> interface.
>
> Closing down the plot dialog box allows Kicad main to function again.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/kicad/+bug/1496617/+subscriptions

Revision history for this message
Jeff Young (jeyjey) wrote :

> @Wayne, wouldn’t we already have the same issue with DRC? That dialog
> is modeless, and runs zone fill as part of the DRC algorithm.

And we do :(

https://bugs.launchpad.net/kicad/+bug/1751112

Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

On 2/22/2018 1:37 PM, Jeff Young wrote:
>> @Wayne, wouldn’t we already have the same issue with DRC? That dialog
>> is modeless, and runs zone fill as part of the DRC algorithm.
>
> And we do :(
>
> https://bugs.launchpad.net/kicad/+bug/1751112
>

I'll bet that's not the only place that causes issues. What happens
when you modify a zone or edit a feature in a zone while the DRC dialog
is filling a zone? Aren't modeless dialogs fun?

Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

@Jeff, do still make sense to merge this given the issue of potential board changes while plotting is occurring? Granted, the plotting happens very quickly so it seems unlikely that the user will be able to trigger anything but it is always a possibility.

Revision history for this message
Jeff Young (jeyjey) wrote :

I'd still like to merge it. The zone problem turned out to be a bug (it did have code in it to prevent recursion, it just wasn't working), so there might not be that many other issues.

It does have a very high heat, so a lot of users have reported it.

Revision history for this message
KiCad Janitor (kicad-janitor) wrote :

Fixed in revision 2473cf6d4598816fcdf7755329176e163e39a2af
https://git.launchpad.net/kicad/patch/?id=2473cf6d4598816fcdf7755329176e163e39a2af

Changed in kicad:
status: Triaged → Fix Committed
Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

Patch merged. Thanks!

Changed in kicad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.