anchor.diff:      // Setup buffer.
       buffer = new fl.TextBuffer();
       buffer.onModify.listen((data) {
  -      if (data.nInserted > 0 || data.nDeleted > 0) {
  -        if (buffer.text == lastShader) {
  -          button.labelfont = fl.COURIER;
  -          button.labelcolor = fl.BLACK;
  -          button.label = 'Recompile';
  -        } else {
  -          button.labelfont = fl.COURIER_BOLD_ITALIC;
  -          button.labelcolor = fl.DARK_GREEN;
  -          button.label = 'Recompile!';
  -        }
  -
  -        button.redraw();
  +      compile();
  +    });
  +
  +    // Bind status to compileStatus stream.
  +    canvas.compileState.listen((status) {
  +      if (status) {
  +        setStatus('Shader is correct', false);
  +      } else {
  +        setStatus('Failed to compile shader', true);
         }
       });
   
  
positive.code:     }
  
      if (shaderState == 1) {
        compileShaders();
        shaderState = 2;
      }
  
  
negative.code:   /// Fragment shader editor
    fl.TextEditor editor;
  
    /// Status box
    fl.Box status;
  
    /// Text buffer for the editor
    fl.TextBuffer buffer;
  