/// <summary> /// Override InteractivePlotSurface2D.Refresh to update entire plotSurface /// </summary> public override void Refresh() { // Update the off-screen drawing cache, then QueueDrawArea raises // an ExposeEvent to copy the cache to the screen, and this Event // is raised immediately by calling ProcessUpdates(). UpdateCache(); canvas.QueueDrawArea(0, 0, canvas.Allocation.Width, canvas.Allocation.Height); if (canvas.IsRealized) { Gdk.Window win = canvas.GdkWindow; win.ProcessUpdates(true); // needs this for responsive updates as mouse moves } }