Skip to content

Commit 052cde5

Browse files
committed
Do not touch sample toggle state if there are no selected objects
Fixes issue described in #36705 (comment) wherein opening a sample popover will disable addition bank toggles and toggle off all addition samples.
1 parent 547f55e commit 052cde5

1 file changed

Lines changed: 15 additions & 12 deletions

File tree

osu.Game/Screens/Edit/Compose/Components/EditorSelectionHandler.cs

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -297,22 +297,25 @@ protected virtual void UpdateTernaryStates()
297297

298298
var samplesInSelection = SelectedItems.SelectMany(enumerateAllSamples).ToArray();
299299

300-
foreach ((string sampleName, var bindable) in SelectionSampleStates)
300+
if (samplesInSelection.Length > 0)
301301
{
302-
bindable.Value = GetStateFromSelection(samplesInSelection, h => h.Any(s => s.Name == sampleName));
303-
}
302+
foreach ((string sampleName, var bindable) in SelectionSampleStates)
303+
{
304+
bindable.Value = GetStateFromSelection(samplesInSelection, h => h.Any(s => s.Name == sampleName));
305+
}
304306

305-
foreach ((string bankName, var bindable) in SelectionBankStates)
306-
{
307-
bindable.Value = GetStateFromSelection(samplesInSelection.SelectMany(s => s).Where(o => o.Name == HitSampleInfo.HIT_NORMAL), h => h.Bank == bankName);
308-
}
307+
foreach ((string bankName, var bindable) in SelectionBankStates)
308+
{
309+
bindable.Value = GetStateFromSelection(samplesInSelection.SelectMany(s => s).Where(o => o.Name == HitSampleInfo.HIT_NORMAL), h => h.Bank == bankName);
310+
}
309311

310-
SelectionAdditionBanksEnabled.Value = samplesInSelection.SelectMany(s => s).Any(o => o.Name != HitSampleInfo.HIT_NORMAL);
312+
SelectionAdditionBanksEnabled.Value = samplesInSelection.SelectMany(s => s).Any(o => o.Name != HitSampleInfo.HIT_NORMAL);
311313

312-
foreach ((string bankName, var bindable) in SelectionAdditionBankStates)
313-
{
314-
bindable.Value = GetStateFromSelection(samplesInSelection.SelectMany(s => s).Where(o => o.Name != HitSampleInfo.HIT_NORMAL),
315-
h => (bankName != HIT_BANK_AUTO && h.Bank == bankName && !h.EditorAutoBank) || (bankName == HIT_BANK_AUTO && h.EditorAutoBank));
314+
foreach ((string bankName, var bindable) in SelectionAdditionBankStates)
315+
{
316+
bindable.Value = GetStateFromSelection(samplesInSelection.SelectMany(s => s).Where(o => o.Name != HitSampleInfo.HIT_NORMAL),
317+
h => (bankName != HIT_BANK_AUTO && h.Bank == bankName && !h.EditorAutoBank) || (bankName == HIT_BANK_AUTO && h.EditorAutoBank));
318+
}
316319
}
317320
}
318321

0 commit comments

Comments
 (0)