Update tooltip every render - fixes tooltips for actors changing under the cursor.

This commit is contained in:
Paul Chote
2011-07-05 23:37:49 +12:00
parent 7c72c1564e
commit dd7e270780

View File

@@ -55,6 +55,12 @@ namespace OpenRA.Mods.Cnc.Widgets
tooltipContainer.Value.RemoveTooltip(); tooltipContainer.Value.RemoveTooltip();
} }
public override void Draw()
{
UpdateMouseover();
base.Draw();
}
public void UpdateMouseover() public void UpdateMouseover()
{ {
TooltipType = WorldTooltipType.None; TooltipType = WorldTooltipType.None;
@@ -79,9 +85,6 @@ namespace OpenRA.Mods.Cnc.Widgets
public override bool HandleMouseInput(MouseInput mi) public override bool HandleMouseInput(MouseInput mi)
{ {
if (mi.Event == MouseInputEvent.Move)
UpdateMouseover();
var scrolltype = Game.Settings.Game.MouseScroll; var scrolltype = Game.Settings.Game.MouseScroll;
if (scrolltype != OpenRA.GameRules.MouseScrollType.Disabled && mi.Event == MouseInputEvent.Move && if (scrolltype != OpenRA.GameRules.MouseScrollType.Disabled && mi.Event == MouseInputEvent.Move &&
(mi.Button == MouseButton.Middle || mi.Button == (MouseButton.Left | MouseButton.Right))) (mi.Button == MouseButton.Middle || mi.Button == (MouseButton.Left | MouseButton.Right)))
@@ -169,15 +172,8 @@ namespace OpenRA.Mods.Cnc.Widgets
return false; return false;
} }
float2 cachedLocation;
public override void Tick() public override void Tick()
{ {
if (Game.viewport.Location != cachedLocation)
{
UpdateMouseover();
cachedLocation = Game.viewport.Location;
}
Edge = ScrollDirection.None; Edge = ScrollDirection.None;
if (Game.Settings.Game.ViewportEdgeScroll && Game.HasInputFocus && Widget.MouseOverWidget == this) if (Game.Settings.Game.ViewportEdgeScroll && Game.HasInputFocus && Widget.MouseOverWidget == this)
{ {