mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
fix: draw context menu immediately after button
This commit is contained in:
parent
6ae93f9348
commit
b6f194cb98
1 changed files with 15 additions and 7 deletions
|
|
@ -506,7 +506,7 @@ namespace Dalamud.Interface.Internal.Windows
|
|||
return ready;
|
||||
}
|
||||
|
||||
private bool DrawPluginCollapsingHeader(string label, PluginManifest manifest, bool trouble, bool updateAvailable, bool isNew, int index)
|
||||
private bool DrawPluginCollapsingHeader(string label, PluginManifest manifest, bool trouble, bool updateAvailable, bool isNew, Action drawContextMenuAction, int index)
|
||||
{
|
||||
ImGui.Separator();
|
||||
|
||||
|
|
@ -535,6 +535,8 @@ namespace Dalamud.Interface.Internal.Windows
|
|||
isOpen = !isOpen;
|
||||
}
|
||||
|
||||
drawContextMenuAction?.Invoke();
|
||||
|
||||
ImGui.PopStyleVar();
|
||||
|
||||
ImGui.PopStyleColor(3);
|
||||
|
|
@ -625,7 +627,7 @@ namespace Dalamud.Interface.Internal.Windows
|
|||
|
||||
ImGui.PushID($"available{index}{manifest.InternalName}");
|
||||
|
||||
if (this.DrawPluginCollapsingHeader(label, manifest, false, false, !wasSeen, index))
|
||||
if (this.DrawPluginCollapsingHeader(label, manifest, false, false, !wasSeen, () => this.DrawAvailablePluginContextMenu(manifest), index))
|
||||
{
|
||||
if (!wasSeen)
|
||||
this.dalamud.Configuration.SeenPluginInternalName.Add(manifest.InternalName);
|
||||
|
|
@ -689,6 +691,11 @@ namespace Dalamud.Interface.Internal.Windows
|
|||
ImGui.Unindent();
|
||||
}
|
||||
|
||||
ImGui.PopID();
|
||||
}
|
||||
|
||||
private void DrawAvailablePluginContextMenu(PluginManifest manifest)
|
||||
{
|
||||
if (ImGui.BeginPopupContextItem("ItemContextMenu"))
|
||||
{
|
||||
if (ImGui.Selectable(Locs.PluginContext_MarkAllSeen))
|
||||
|
|
@ -730,8 +737,6 @@ namespace Dalamud.Interface.Internal.Windows
|
|||
|
||||
ImGui.EndPopup();
|
||||
}
|
||||
|
||||
ImGui.PopID();
|
||||
}
|
||||
|
||||
private void DrawInstalledPlugin(LocalPlugin plugin, int index, bool showInstalled = false)
|
||||
|
|
@ -807,7 +812,7 @@ namespace Dalamud.Interface.Internal.Windows
|
|||
|
||||
ImGui.PushID($"installed{index}{plugin.Manifest.InternalName}");
|
||||
|
||||
if (this.DrawPluginCollapsingHeader(label, plugin.Manifest, trouble, availablePluginUpdate != default, false, index))
|
||||
if (this.DrawPluginCollapsingHeader(label, plugin.Manifest, trouble, availablePluginUpdate != default, false, () => this.DrawInstalledPluginContextMenu(plugin), index))
|
||||
{
|
||||
if (!this.WasPluginSeen(plugin.Manifest.InternalName))
|
||||
this.dalamud.Configuration.SeenPluginInternalName.Add(plugin.Manifest.InternalName);
|
||||
|
|
@ -894,6 +899,11 @@ namespace Dalamud.Interface.Internal.Windows
|
|||
ImGui.Unindent();
|
||||
}
|
||||
|
||||
ImGui.PopID();
|
||||
}
|
||||
|
||||
private void DrawInstalledPluginContextMenu(LocalPlugin plugin)
|
||||
{
|
||||
if (ImGui.BeginPopupContextItem("InstalledItemContextMenu"))
|
||||
{
|
||||
if (ImGui.Selectable(Locs.PluginContext_DeletePluginConfigReload))
|
||||
|
|
@ -913,8 +923,6 @@ namespace Dalamud.Interface.Internal.Windows
|
|||
|
||||
ImGui.EndPopup();
|
||||
}
|
||||
|
||||
ImGui.PopID();
|
||||
}
|
||||
|
||||
private void DrawPluginControlButton(LocalPlugin plugin)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue