Bug introduced in 10.0 and persisting through 11.0.1 or later
Starting from Mathematica 10, there's a new feature: when you begin editing your input cell, its output becomes faded. A side effect of it is that in certain cases the output is dynamically updated. This results in annoyances like when you e.g. have made a mistake leading to messages being emitted and now try to edit the input cell to fix the mistake.
Here's a simple example:
Manipulate[ListPlot[Table[Sin[a x]/(a x), {x, -10, 10}], Joined -> True], {a, -10, 10}]
(manipulator here)
Power::infy: Infinite expression 1/0 encountered.
Infinity::indet: Indeterminate expression 0 ComplexInfinity encountered.
Now try e.g. to replace Sin[a x]/(a x) with Sinc[a x], and you'll get two more identical messages. In more complicated scenarios the manipulator may spit lots of messages, which you may have stopped by e.g. Alt+.. But once you start editing the input cell, all they will be emitted again.
This does not happen with every input. It happens with Manipulates that contain contain plotting functions in their code (even if the plot output is never displayed).
So my question is: how do I disable this (mis)feature of fading the output on editing input?
Dynamicstuff gets updates (simple examples don't).Manipulateis a bit special in that it doesn't actually evaluate, it just formats in a special way (MakeBoxes). I tested andMakeBoxesare not called a second time when the output is faded. What happens then? – Szabolcs Oct 30 '16 at 13:01Manipulate[ Print["Evaluating"]; ListPlot[{1, 2}]; a, {a, -10, 10}, TrackedSymbols -> {} ]. TheListPlotis critical, without it this doesn't happen. – Szabolcs Oct 30 '16 at 13:09Plot3Doutput, which on my slow i915-like GPU with ugly Mesa drivers appears to hang for some time again (as if it's re-generated) when I start editing the cell which generated it. So this all looks like a re-evaluation to me. Feel free to edit the title if you know how to formulate it correctly. – Ruslan Oct 30 '16 at 13:10Printwill print to the notebook directly. However, if I removeListPlot, it will print to the message window for some reason.Manipulateappears to switch to a different mode when it detects the ListPlot inside. Maybe this has to do with$ControlActiveSetting, not sure. – Szabolcs Oct 30 '16 at 13:13*Plot[]output, and something that gets changed when the output cell is dimmed must affect one of these variables and triggers an update. – Michael E2 Oct 30 '16 at 13:14Manipulate[x; Print@$PerformanceGoal, {x, 0, 1}]When the control is active, this should be Speed. That gets printed in the messages window. When the control stops being active, it reverts to Quality. That is printed within the notebook itself. This whole thing must have something to do with the detection of when quality must be reduced during changing the controls. Usually this is necessary only when there are plotting functions. – Szabolcs Oct 30 '16 at 13:20Manipulate`Dump`DebugPrint = Printand trying editing the input, and also trying re-formatting through ctrl-shift-N. Only re-formatting triggers debug messages. – Szabolcs Oct 30 '16 at 13:39