I proposed that JMP deal with display elements the same manner as every other GUI framework -- don't redraw any element unless the contents have changed or a specific redraw (or inval) method is invoked.
Specifically, can there please be a way to keep frameboxes from redrawing the content (this includes redrawing all data points and re-running any attached script) whenever a window is scrolled? Like seriously, draw once and keep the bitmap (or pixmap) persistent unless the box has been changed (size change / dt RowState change / inval method)
This is an insanely extreme productivity kill when scrolling through graphs that have many thousands of points or complex attached scripts. The current method of "redraw at every possible opportunity no matter what" is extremely baffling.
Here is an example -- the attached scrip merely prints to the log, but scrolling through the graphs shows how it is constantly running every time the scroll box updates (don't propagate the <<inval method to child boxes, ffs)
New Window( "Test",
vlb = V List Box()
);
::global function = Function( {},
Print( 1 );
);
For( i = 1, i <= 20, i++,
vlb << Append(
Graph Box(
Frame Size( 200, 200 ),
X Scale( -100, 100 ),
Y Scale( -100, 100 ),
::global function
)
)
)