fix(payload-handler): popup-pfad in MessageList-Child-Scope verschieben
Seit dem v1.7.0-Components-Layer-Refactor lebte der PayloadHandler- Popup-Render in MainWindow.Draw als _messages.DrawHandlerPopups()- Aufruf nach dem ##hellion-body-Child-Close. ImGui.OpenPopup (in RightClickPayload, innerhalb ##hellion-main-area-Child) und ImGui.BeginPopup (in PayloadHandler.DrawPopups, im MainWindow-Root nach Child-Close) hashed die Popup-ID per g.CurrentWindow->GetID(...) window-relativ — also unterschiedlich. OpenPopupStack-Eintrag wurde nie gefunden, popup.Success blieb false, _popup wurde auf null zurückgesetzt. Alle vier Popup-Switch-Cases waren tot: URL-Rechtsklick, Player, Item (inkl. EventItem-Subpfad), Status. Fix nach v1.5.6/ChatTwo-Pattern: _handler?.Draw() ans Ende von MessageList.Draw() verschieben. MessageList läuft im ##hellion-main-area-Scope und öffnet selbst kein Child, also teilen OpenPopup und BeginPopup denselben Window-Stack. ID-Hash matched, Popup rendert. DrawHandlerPopups-Wrapper aus MessageList und der Aufruf in MainWindow.Draw entfallen — kein toter Code mehr (grep DrawHandlerPopups: 0 Treffer). Hypothese verifiziert gegen imgui.h:845 + imgui.cpp:12282+12528 (beide BeginPopup-Hash und OpenPopup-Hash sind window-relativ), v1.5.6 ChatLogWindow.cs:1667 (handler.Draw im ##chat2-messages-Child), ChatTwo ChatLog.Window.cs:620 (identisches Pattern). Reader-Lock auf tab.Messages bleibt während DrawPopups gehalten — identisch zu v1.5.6-Semantik. Verifiziert in-game (Flo): Linksklick auf URL öffnet Browser direkt (v1.5.6-konform), Rechtsklick öffnet wieder das Kontext-Popup. dotnet build clean, dotnet csharpier check clean. Plan-Runde 1 dieses Cycles (4-LOC-Reroute LeftClick → RightClickPayload) wurde verworfen weil empirischer Test zeigte dass auch Rechtsklick broken war — der Reroute hätte das Symptom nur sichtbarer gemacht ohne die Root-Cause zu adressieren.
This commit is contained in:
@@ -113,7 +113,6 @@ internal sealed class MainWindow : Window
|
||||
DrawBody();
|
||||
}
|
||||
|
||||
_messages.DrawHandlerPopups();
|
||||
_status.Draw(_activeTab);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user