From 710a32d1ce37be92e238c77d0de360325b4fe4a2 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Tue, 4 Aug 2015 22:06:39 +0100 Subject: [PATCH 1/2] Extract ScrollPanel tooltip workaround into common code. --- OpenRA.Game/Widgets/Widget.cs | 7 +++++++ OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs | 9 ++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/OpenRA.Game/Widgets/Widget.cs b/OpenRA.Game/Widgets/Widget.cs index 9154244b39..1802ad2dd5 100644 --- a/OpenRA.Game/Widgets/Widget.cs +++ b/OpenRA.Game/Widgets/Widget.cs @@ -131,6 +131,13 @@ namespace OpenRA.Widgets while (WindowList.Count > 0) 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 diff --git a/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs b/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs index 9658a736b9..7031191a2a 100644 --- a/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs @@ -79,10 +79,7 @@ namespace OpenRA.Mods.Common.Widgets // Update mouseover if (oldListOffset != currentListOffset) - { - var mi = new MouseInput(MouseInputEvent.Move, MouseButton.None, 0, Viewport.LastMousePos, Modifiers.None, 0); - Ui.HandleInput(mi); - } + Ui.ResetTooltips(); } } @@ -266,9 +263,7 @@ namespace OpenRA.Mods.Common.Widgets { currentListOffset += offsetDiff * SmoothScrollSpeed.Clamp(0.1f, 1.0f); - // Update mouseover - var mi = new MouseInput(MouseInputEvent.Move, MouseButton.None, 0, Viewport.LastMousePos, Modifiers.None, 0); - Ui.HandleInput(mi); + Ui.ResetTooltips(); } else SetListOffset(targetListOffset, false); From de4fbfd47aa7abe0e5af99a3590fb9599a197c5b Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Tue, 4 Aug 2015 22:10:01 +0100 Subject: [PATCH 2/2] Reset tooltips when dismissing a DropDownButtonWidget. --- OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs b/OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs index a679a5c4ed..49f538a69e 100644 --- a/OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs +++ b/OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs @@ -67,6 +67,8 @@ namespace OpenRA.Mods.Common.Widgets panelRoot.RemoveChild(fullscreenMask); panelRoot.RemoveChild(panel); panel = fullscreenMask = null; + + Ui.ResetTooltips(); } public void AttachPanel(Widget p) { AttachPanel(p, null); }