diff --git a/OpenRA.Game/Widgets/RadarBinWidget.cs b/OpenRA.Game/Widgets/RadarBinWidget.cs index 47ef73beb9..bc84644cfe 100644 --- a/OpenRA.Game/Widgets/RadarBinWidget.cs +++ b/OpenRA.Game/Widgets/RadarBinWidget.cs @@ -65,7 +65,7 @@ namespace OpenRA.Widgets return true; } - public override Rectangle RenderBounds + public override Rectangle EventBounds { get { return new Rectangle((int)radarOrigin.X + 9, (int)(radarOrigin.Y + (192 - radarMinimapHeight) / 2), 192, (int)radarMinimapHeight);} diff --git a/OpenRA.Game/Widgets/SpecialPowerBinWidget.cs b/OpenRA.Game/Widgets/SpecialPowerBinWidget.cs index 90c01e50b8..b8edfd092f 100644 --- a/OpenRA.Game/Widgets/SpecialPowerBinWidget.cs +++ b/OpenRA.Game/Widgets/SpecialPowerBinWidget.cs @@ -42,7 +42,7 @@ namespace OpenRA.Widgets clock = new Animation("clock"); } - public override Rectangle RenderBounds + public override Rectangle EventBounds { get { return buttons.Any() ? buttons.Select(b => b.First).Aggregate(Rectangle.Union) : Bounds; } } diff --git a/OpenRA.Game/Widgets/Widget.cs b/OpenRA.Game/Widgets/Widget.cs index 5310b91fdb..a61769053b 100644 --- a/OpenRA.Game/Widgets/Widget.cs +++ b/OpenRA.Game/Widgets/Widget.cs @@ -129,10 +129,12 @@ namespace OpenRA.Widgets Game.CreateObject(d); } + public virtual Rectangle EventBounds { get { return RenderBounds; } } + public bool HitTest(int2 xy) { if (!IsVisible()) return false; - if (RenderBounds.Contains(xy.ToPoint()) && !ClickThrough) return true; + if (EventBounds.Contains(xy.ToPoint()) && !ClickThrough) return true; return Children.Any(c => c.HitTest(xy)); } @@ -142,7 +144,7 @@ namespace OpenRA.Widgets return Children .Where(c => c.IsVisible()) .Select(c => c.GetEventBounds()) - .Aggregate(RenderBounds, Rectangle.Union); + .Aggregate(EventBounds, Rectangle.Union); }