@@ -97,6 +97,9 @@ public abstract class AbstractInterfaceView<I : InterfacesInventory, T : Interfa
97
97
/* * Whether all properties should be fully reloaded. */
98
98
protected var fullyReload: Boolean = false
99
99
100
+ /* * Whether all refresh type transforms should be reloaded. */
101
+ protected var reloadRefresh: Boolean = false
102
+
100
103
/* * Whether a click is being processed. */
101
104
public var isProcessingClick: Boolean = false
102
105
@@ -322,6 +325,11 @@ public abstract class AbstractInterfaceView<I : InterfacesInventory, T : Interfa
322
325
fullyReload = true
323
326
}
324
327
328
+ // Trigger a refresh for RELOAD type transforms as long as reload is specified
329
+ if (reload) {
330
+ reloadRefresh = true
331
+ }
332
+
325
333
// If we want to redraw the title we use a new inventory always
326
334
if (backing.builder.redrawTitleOnReopen) {
327
335
refreshTitle = true
@@ -406,18 +414,23 @@ public abstract class AbstractInterfaceView<I : InterfacesInventory, T : Interfa
406
414
} else {
407
415
// Run any queued transforms while the menu was not shown if applicable, including any
408
416
// transforms that always redraw
409
- val queued = queuedTransforms.toSet() + builder.transforms.filter { it.refresh == RefreshMode .ALWAYS }
410
- .onEach {
411
- // Reset any transforms that are not stale so they properly re-render!
412
- it.reset()
413
- }
417
+ val queued =
418
+ queuedTransforms.toSet() +
419
+ builder.transforms.filter { it.refresh == RefreshMode .ALWAYS || (it.refresh == RefreshMode .RELOAD && reloadRefresh) }
420
+ .onEach {
421
+ // Reset any transforms that are not stale so they properly re-render!
422
+ it.reset()
423
+ }
414
424
if (queued.isNotEmpty()) {
415
425
queuedTransforms = ConcurrentHashMap .newKeySet()
416
426
applyTransforms(queued, initial = false , renderIfEmpty = true )
417
427
} else {
418
428
triggerRerender()
419
429
}
420
430
}
431
+
432
+ // Mark that we did a reload!
433
+ reloadRefresh = false
421
434
}
422
435
423
436
/* * Triggers a re-render of the inventory based on all currently completed panes. */
0 commit comments