Bugzilla – Bug 1407
Freezing help dialog in Timer Record
Last modified: 2018-08-20 11:46:14 UTC
The new behavior that fixes this, is to cause the "?" button to dismiss the Timer Record dialog first, as if cancelled, and bring up the Help dialog after. commit 5c044c0cea75f03bea493da4c479c2dc7d4a7705 is the fix. I thought this might be related to P2 bug 1338 when I discovered it, but further research showed that is not so.
Thanks Paul for adding the bug. This Mac-only problem was mentioned here http://bugzilla.audacityteam.org/show_bug.cgi?id=1394#c4 . I thought Peter was going to raise a bug because he asked what its rating would be (which I said was "just about a P3" so I made this bug P3). Is this the fix we want, applied to all platforms? On Windows and Linux before the fix, "Help on the Internet" accessed from Timer Record was modeless. You could not use it to click links when Timer Recording was recording, and it closed when Timer Recording closed, but you could have Timer Recording still open and clickable after using "Help on the Internet" to look at the online help page. I suggest this is the more user-friendly behaviour. Can we make that happen on Mac?
It appears than on Mac, when a modal dialog opens another window, the second window is unresponsive. I suspect fixing this might involve patching wxWidgets and that reuqires searching deepr than I want to go.
(In reply to Paul L from comment #2) I think the behaviour we ideally want can be summarised "Opening help from Timer Record, and closing help, does not close Timer Record, but closing Timer Record closes help". This is important behaviour to define because we want to extend the use of Help buttons. So the first step might be to make your change conditional to Mac so we don't lose functionality on the other platforms. I don't think it is generally true that on Mac, when a modal dialogue opens another window, the second window is unresponsive. That is not the case for Save / Manage Curves... opened from Equalization. Is the problem specific to an HTML window opened from a modal dialogue? That seems to be the case e.g. drag some app into Audacity on Mac, click the ? button in the "Not recognised" dialogue, and you can't click in the help window. This started with 2.1.2 so it does seem to be a wx3 issue. The Help dialogue spawned from the modeless Contrast window can be used. The wrong behaviour there is that closing Help closes Contrast.
I will rewrite my fix. In the case of Equalization and manage curves, a modal dialog is interrupted by another modal dialog. It may be necessary on Mac to make the Help dialog modal if the Timer Record dialog is not to be dismissed. If it's not necessary, I haven't figured out how to do that. Would it be acceptable to make the help window modal on all three? That would simplify things.
Fixed differently at: bb3b5a27be167576e9bfa1e9145c3977865a6b26 Help dialog is modal, which makes it unfrozen on Mac. It might not be necessary to make it modal on the others, but I like to avoid platform-dependent code without a good argument in favor of it.
(In reply to Paul L from comment #5) Looks to be ok on Mac El Capitan d6187f6 21Jun16
RESOLVED-FIXED. I tested also on Ubuntu and found that Timer Record is not made modal there. Due to the fix, you can't user Timer Record or Audacity if you leave Help open then try to Timer Record. See bug 1408. So, Peter, thanks for testing this on Mac, but I think it was wrong to then call this FIX-FULLY-TESTED. Although the bug was indeed only on Mac, the fix (making the Help dialogue modal) affected all three platforms, so demands testing on all three platforms. I think it's arguable that unless a fix for a Mac-only bug was inside a wxMac define, FIX-FULLY-TESTED should not be used until it really has been tested on all three platforms. It did not matter as it happened, because you found bug 1408 on Windows which is related to what I saw on Ubuntu, but if you had not found that, QM might have absent-mindedly closed this bug without testing on Linux at all. @Paul, I think it's acceptable to make "Help on the Internet" modal. It's better than what we had before where Timer Record would close on clicking "Help". I don't think it's now bad enough to insist that we do different on Windows and Linux. Gale wrote > The Help dialogue spawned from the modeless Contrast window can be used. The > wrong behaviour there is that closing Help closes Contrast I was fooled - focus is returned to the main window. I added this at bug 1409. Gale wrote: > drag some app into Audacity on Mac, click the ? button in the "Not > recognised" dialogue, and you can't click in the help window. This started > with 2.1.2 so it does seem to be a wx3 issue. I added this at bug 1410.
Wait, Timer Record dialog is modal on Mac and Windows but not on Linux? That sounds like a bug in itself, not a feature. Will you open a bug report, Gale? I have a suspicion that you might change TimerRecordDialog dialog(this, bProjectSaved); /* parent, project saved? */ to TimerRecordDialog dialog(nullptr, bProjectSaved); /* parent, project saved? */ in Menus.cpp and get modal behavior.
(In reply to Paul L from comment #8) > Wait, Timer Record dialog is modal on Mac and Windows but not on Linux? I am not sure what I said to imply that, but Timer Record dialogue is modal on Linux too. The Help dialogues opened from Timer Record were not modal, but that is now fixed (bug 1408).