Skip to content

Commit a73e5c7

Browse files
authored
fix: combobox/menu items width (#2799)
fixes #2553 Signed-off-by: Arufonsu <17498701+Arufonsu@users.noreply.github.com>
1 parent 773963b commit a73e5c7

3 files changed

Lines changed: 8 additions & 24 deletions

File tree

Intersect.Client.Framework/Gwen/Control/ComboBox.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -422,10 +422,8 @@ private static void Open(ComboBox @this)
422422
var menuItems = @this._menu.Children.OfType<MenuItem>().ToArray();
423423
foreach (var menuItem in menuItems)
424424
{
425-
menuItem.SizeToContents();
425+
menuItem.AutoSizeToContents = false;
426426
totalChildHeight += menuItem.OuterHeight;
427-
// TODO(2553): I thought this was the solution, it isn't. Results in menu growing each time it's opened.
428-
// width = Math.Max(width, menuItem.OuterWidth + menuPaddingH);
429427
}
430428

431429
var offset = @this.ToCanvas(default);
Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,3 @@
11
namespace Intersect.Client.Framework.Gwen.Control;
22

3-
public class ContextMenu : Menu
4-
{
5-
public ContextMenu(Base parent, string? name = default) : base(parent, name)
6-
{
7-
8-
}
9-
10-
protected override void OnPositioningBeforeOpen()
11-
{
12-
base.OnPositioningBeforeOpen();
13-
14-
SizeToChildren(recursive: true);
15-
}
16-
17-
protected override void OnOpen()
18-
{
19-
base.OnOpen();
20-
21-
PostLayout.Enqueue(contextMenu => contextMenu.SizeToChildren(recursive: true), this);
22-
}
23-
}
3+
public class ContextMenu(Base parent, string? name = default) : Menu(parent, name);

Intersect.Client.Framework/Gwen/Control/Menu.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,13 @@ private static void Open(Menu @this, Pos position)
193193

194194
protected virtual void OnPositioningBeforeOpen()
195195
{
196+
var menuItems = Children.OfType<MenuItem>().ToArray();
197+
foreach (var menuItem in menuItems)
198+
{
199+
menuItem.AutoSizeToContents = false;
200+
}
196201

202+
SizeToChildren(recursive: true);
197203
}
198204

199205
protected virtual void OnOpen()

0 commit comments

Comments
 (0)