Extract ScrollPanel tooltip workaround into common code.

This commit is contained in:
Paul Chote
2015-08-04 22:06:39 +01:00
parent c6cb9db0dd
commit 710a32d1ce
2 changed files with 9 additions and 7 deletions

View File

@@ -131,6 +131,13 @@ namespace OpenRA.Widgets
while (WindowList.Count > 0) while (WindowList.Count > 0)
CloseWindow(); CloseWindow();
} }
public static void ResetTooltips()
{
// Issue a no-op mouse move to force any tooltips to be recalculated
HandleInput(new MouseInput(MouseInputEvent.Move, MouseButton.None, 0,
Viewport.LastMousePos, Modifiers.None, 0));
}
} }
public abstract class Widget public abstract class Widget

View File

@@ -79,10 +79,7 @@ namespace OpenRA.Mods.Common.Widgets
// Update mouseover // Update mouseover
if (oldListOffset != currentListOffset) if (oldListOffset != currentListOffset)
{ Ui.ResetTooltips();
var mi = new MouseInput(MouseInputEvent.Move, MouseButton.None, 0, Viewport.LastMousePos, Modifiers.None, 0);
Ui.HandleInput(mi);
}
} }
} }
@@ -266,9 +263,7 @@ namespace OpenRA.Mods.Common.Widgets
{ {
currentListOffset += offsetDiff * SmoothScrollSpeed.Clamp(0.1f, 1.0f); currentListOffset += offsetDiff * SmoothScrollSpeed.Clamp(0.1f, 1.0f);
// Update mouseover Ui.ResetTooltips();
var mi = new MouseInput(MouseInputEvent.Move, MouseButton.None, 0, Viewport.LastMousePos, Modifiers.None, 0);
Ui.HandleInput(mi);
} }
else else
SetListOffset(targetListOffset, false); SetListOffset(targetListOffset, false);