SetTopRow() no longer changes the selected row
Before 4.00 RC 1 the behavior of SetTopRow() was inconsistent, if the currently selected row was not on screen. While originally SetTopRow() was designed to ensure that the currently selected row is always on screen (so that using gamepad controls you directly know what happens when pressing up/down to move through the table), ever since table mouse-scrolling support was added, the behavior was flawed and broken.
Depending on the actual table set up this would have led to cases where the table was moved too much upwards (instead of ensuring a fixed table size) or the table selecting a different row, while the modder/scripter would assume the current one not having been changed.
Hence, there was no possibility for modders to ensure a certain table set up with the current row not being on screen (sometimes it "worked", but in most cases it didn't).
In order to resolve all the issues at once, we modified the behavior of SetTopRow().
As of 4.00 RC 1 the function no longer changes the currently selected row at all. If you depend on the previous behavior, please add a call to SelectRow() after calling SetTopRow() and explicitly specify the row you want to be the selected one.
GetMacroData() "storagetags" property change
It turned out that in all of our menus which used the data retrieved via GetMacroData() for the "storagetags" property, we never intended to display the "fuel" property (unless the ship/object actually only had storage for fuel). To resolve the issues in our menus we therefore quickly changed the behavior of the "storagetags" property so that it no longer returns the "fuel" value for any object which has any other storage specified.
If this behavior change breaks anything for you, please let us know (for instance by posting a comment here) and we see to find a way to resolve the issue with your mod.