Refined Storage

Refined Storage

77M Downloads

Feature: prevent grid from resorting contents during multiple stack removals

shabble opened this issue · 3 comments

commented

Issue description:

When grid is sorted by quantity, removing items can (obviously) cause the position of items in the grid UI to move, but this can hinder easy removal of large numbers of item stacks by repetitive shift-clicking.

What happens:

When attempting to fill your inventory (or just remove >1 stack) by shift-clicking, if removing a stack reduces the quantity below that of its neighbour, it will swap places in the grid inventory list, so repeatedly shift-clicking will not reliably fetch only the desired item.

What you expected to happen:

The easiest/most useful solution I can think of is that, after the first shift-click on an item to remove a stack, if the shift key is still held down, grid re-sorting is suspended until the shift key is released (but item count in the grid still decrements). That way things remain in the same relative positions regardless of +/- changes to item counts, and makes clicking N times in the same place possible without having to track if the itemstack has moved places.

Steps to reproduce:

  1. Open grid and set to sort by quantity, highest first.
  2. Ensure there are reasonably similar amounts of 2 or more item types
  3. Shift-click repeatedly to remove a stack at a time of the item of higher quantity
  4. When qty(item1) < qty(item2) they will swap places and subsequent clicks remove item2.

...

Version (Make sure you are on the latest version before reporting):

  • Minecraft: 1.10.2
  • Forge: 2215
  • Refined Storage: 1.2.17

Does this issue occur on a server? [yes/no]
n/a?

commented

And this is why you don't sort on quantity, but on name (although I myself would prefer ID).

commented

I agree, grid sorting should stall when holding shift.

commented

Wontfix. I tried implementing this, but the code doesn't differantiate between "stack removals" and "new stacks inserted". So when holding shift, all updating completely stops (including insertion of new stacks or removal of stacks)