What about only sorting the list when first opening the terminal or when the search string is altered (and perhaps when a 'refresh' button is clicked as well)? If additional items appear, they should do so at the end of the list. If an item appears and then is removed by the system or a player (export bus, etc) the terminal (or storage system?) could remember that it was present and display it with a zero count for a while, preferably persisting across sorting changes (due to refreshes or search string changes). That would prevent repeated shift-clicks from starting to fill your inventory with a different type of item, since you'd still be clicking on the same item with a zero count.
Additionally, to help with displaying new items entering the system, if the last row of items shown in a terminal is full (no blank slots), the terminal should be able to scroll down one additional line to show an empty row. When new items appear at the end of the list they would then already be visible on that row instead of requiring the player to wait for them to appear before being able to scroll down to see the newly added items. |