@@ -19,6 +19,7 @@ namespace Intersect.Client.Interface.Game;
1919/// </summary>
2020public sealed partial class TargetContextMenu : Framework . Gwen . Control . Menu
2121{
22+ private readonly MenuItem _targetNameMenuItem ;
2223 private readonly MenuItem _tradeMenuItem ;
2324 private readonly MenuItem _partyMenuItem ;
2425 private readonly MenuItem _friendMenuItem ;
@@ -35,6 +36,10 @@ public TargetContextMenu(Canvas gameCanvas) : base(gameCanvas, nameof(TargetCont
3536
3637 _me = Globals . Me ;
3738
39+ _targetNameMenuItem = AddItem ( string . Empty ) ;
40+ _targetNameMenuItem . MouseInputEnabled = false ;
41+ AddDivider ( ) ;
42+
3843 _tradeMenuItem = AddItem ( Strings . EntityContextMenu . Trade ) ;
3944 _tradeMenuItem . Clicked += tradeRequest_Clicked ;
4045
@@ -60,6 +65,8 @@ public void ToggleHidden(object? target)
6065 return ;
6166 }
6267
68+ bool shouldShowTargetNameMenuItem = false ;
69+
6370 float posX , posY , newX , newY ;
6471
6572 switch ( target )
@@ -84,12 +91,19 @@ public void ToggleHidden(object? target)
8491 posY = InputHandler . MousePosition . Y ;
8592 newX = posX ;
8693 newY = posY ;
94+
95+ shouldShowTargetNameMenuItem = true ;
8796 break ;
8897
8998 default :
9099 return ;
91100 }
92101
102+ if ( _entity == null )
103+ {
104+ return ;
105+ }
106+
93107 if ( Canvas is { } canvas )
94108 {
95109 if ( newX + Width >= canvas . Width )
@@ -103,8 +117,10 @@ public void ToggleHidden(object? target)
103117 }
104118 }
105119
120+
106121 if ( IsHidden )
107122 {
123+ TryShowTargetButton ( shouldShowTargetNameMenuItem ) ;
108124 TryShowGuildButton ( ) ;
109125 SizeToChildren ( ) ;
110126 Open ( Pos . None ) ;
@@ -116,6 +132,30 @@ public void ToggleHidden(object? target)
116132 }
117133 }
118134
135+ private void TryShowTargetButton ( bool shouldShow )
136+ {
137+ _targetNameMenuItem . SetText ( shouldShow ? _entity . Name : string . Empty ) ;
138+
139+ if ( shouldShow )
140+ {
141+ var indexOf = Children . IndexOf ( _targetNameMenuItem ) ;
142+
143+ if ( indexOf > 0 )
144+ {
145+ Children . RemoveAt ( indexOf ) ;
146+ }
147+
148+ if ( indexOf != 0 )
149+ {
150+ Children . Insert ( 0 , _targetNameMenuItem ) ;
151+ }
152+ }
153+ else
154+ {
155+ Children . Remove ( _targetNameMenuItem ) ;
156+ }
157+ }
158+
119159 void invite_Clicked ( Base sender , ClickedEventArgs arguments )
120160 {
121161 if ( _me == null || _entity is not Player || _entity == _me )
0 commit comments