Containers shouldn't steal mouseover focus

This commit is contained in:
Paul Chote
2011-07-05 19:45:44 +12:00
parent 2f9114fcf8
commit 88d68f7790

View File

@@ -126,6 +126,7 @@ namespace OpenRA.Widgets
public string Logic = null; public string Logic = null;
public object LogicObject { get; private set; } public object LogicObject { get; private set; }
public bool Visible = true; public bool Visible = true;
public bool IgnoreMouseOver;
public bool IgnoreChildMouseOver; public bool IgnoreChildMouseOver;
// Calculated internally // Calculated internally
@@ -297,7 +298,7 @@ namespace OpenRA.Widgets
if (IgnoreChildMouseOver) if (IgnoreChildMouseOver)
MouseOverWidget = oldMouseOver; MouseOverWidget = oldMouseOver;
if (mi.Event == MouseInputEvent.Move && MouseOverWidget == null) if (mi.Event == MouseInputEvent.Move && MouseOverWidget == null && !IgnoreMouseOver)
MouseOverWidget = this; MouseOverWidget = this;
return HandleMouseInput(mi); return HandleMouseInput(mi);
@@ -389,9 +390,9 @@ namespace OpenRA.Widgets
public class ContainerWidget : Widget public class ContainerWidget : Widget
{ {
public ContainerWidget() : base() { } public ContainerWidget() : base() { IgnoreMouseOver = true; }
public ContainerWidget(ContainerWidget other) public ContainerWidget(ContainerWidget other)
: base(other) { } : base(other) { IgnoreMouseOver = true; }
public override string GetCursor(int2 pos) { return null; } public override string GetCursor(int2 pos) { return null; }
public override Widget Clone() { return new ContainerWidget(this); } public override Widget Clone() { return new ContainerWidget(this); }