Stop admin verb pop-in (#27450)
This commit is contained in:
@@ -31,6 +31,7 @@ namespace Content.Client.Verbs.UI
|
||||
|
||||
public NetEntity CurrentTarget;
|
||||
public SortedSet<Verb> CurrentVerbs = new();
|
||||
public List<VerbCategory> ExtraCategories = new();
|
||||
|
||||
/// <summary>
|
||||
/// Separate from <see cref="ContextMenuUIController.RootMenu"/>, since we can open a verb menu as a submenu
|
||||
@@ -91,19 +92,12 @@ namespace Content.Client.Verbs.UI
|
||||
menu.MenuBody.DisposeAllChildren();
|
||||
|
||||
CurrentTarget = target;
|
||||
CurrentVerbs = _verbSystem.GetVerbs(target, user, Verb.VerbTypes, force);
|
||||
CurrentVerbs = _verbSystem.GetVerbs(target, user, Verb.VerbTypes, out ExtraCategories, force);
|
||||
OpenMenu = menu;
|
||||
|
||||
// Fill in client-side verbs.
|
||||
FillVerbPopup(menu);
|
||||
|
||||
// Add indicator that some verbs may be missing.
|
||||
// I long for the day when verbs will all be predicted and this becomes unnecessary.
|
||||
if (!target.IsClientSide())
|
||||
{
|
||||
_context.AddElement(menu, new ContextMenuElement(Loc.GetString("verb-system-waiting-on-server-text")));
|
||||
}
|
||||
|
||||
// if popup isn't null (ie we are opening out of an entity menu element),
|
||||
// assume that that is going to handle opening the submenu properly
|
||||
if (popup != null)
|
||||
@@ -128,11 +122,19 @@ namespace Content.Client.Verbs.UI
|
||||
var element = new VerbMenuElement(verb);
|
||||
_context.AddElement(popup, element);
|
||||
}
|
||||
|
||||
else if (listedCategories.Add(verb.Category.Text))
|
||||
AddVerbCategory(verb.Category, popup);
|
||||
}
|
||||
|
||||
if (ExtraCategories != null)
|
||||
{
|
||||
foreach (var category in ExtraCategories)
|
||||
{
|
||||
if (listedCategories.Add(category.Text))
|
||||
AddVerbCategory(category, popup);
|
||||
}
|
||||
}
|
||||
|
||||
popup.InvalidateMeasure();
|
||||
}
|
||||
|
||||
@@ -153,10 +155,11 @@ namespace Content.Client.Verbs.UI
|
||||
}
|
||||
}
|
||||
|
||||
if (verbsInCategory.Count == 0)
|
||||
if (verbsInCategory.Count == 0 && !ExtraCategories.Contains(category))
|
||||
return;
|
||||
|
||||
var element = new VerbMenuElement(category, verbsInCategory[0].TextStyleClass);
|
||||
var style = verbsInCategory.FirstOrDefault()?.TextStyleClass ?? Verb.DefaultTextStyleClass;
|
||||
var element = new VerbMenuElement(category, style);
|
||||
_context.AddElement(popup, element);
|
||||
|
||||
// Create the pop-up that appears when hovering over this element
|
||||
|
||||
Reference in New Issue
Block a user