diff --git a/OpenRA.Mods.Common/Orders/UnitOrderGenerator.cs b/OpenRA.Mods.Common/Orders/UnitOrderGenerator.cs index ad0a6e626d..0c647ccac0 100644 --- a/OpenRA.Mods.Common/Orders/UnitOrderGenerator.cs +++ b/OpenRA.Mods.Common/Orders/UnitOrderGenerator.cs @@ -101,11 +101,12 @@ namespace OpenRA.Mods.Common.Orders .Where(o => o != null && o.Cursor != null); var cursorOrder = ordersWithCursor.MaxByOrDefault(o => o.Order.OrderPriority); - if (cursorOrder != null) - return cursorOrder.Cursor; useSelect = target.Type == TargetType.Actor && target.Actor.Info.HasTraitInfo() && - (mi.Modifiers.HasModifier(Modifiers.Shift) || world.Selection.Actors.Count == 0); + (cursorOrder == null || world.Selection.Actors.Count == 0 || !InputOverridesSelection(world, worldPixel, mi)); + + if (!useSelect && cursorOrder != null) + return cursorOrder.Cursor; } return useSelect ? worldSelectCursor : worldDefaultCursor; diff --git a/OpenRA.Mods.Common/Widgets/RadarWidget.cs b/OpenRA.Mods.Common/Widgets/RadarWidget.cs index 547bc8195c..caa48e0158 100644 --- a/OpenRA.Mods.Common/Widgets/RadarWidget.cs +++ b/OpenRA.Mods.Common/Widgets/RadarWidget.cs @@ -307,8 +307,10 @@ namespace OpenRA.Mods.Common.Widgets var cursor = world.OrderGenerator.GetCursor(world, cell, worldPixel, mi); - if (cursor == null) - return worldDefaultCursor; + // We can't select through the minimap in Mouse Control Types other than Classic, + // as they move the minimap on left click, so don't show the selection cursor for them + if (cursor == null || (gameSettings.MouseControlStyle != MouseControlStyle.Classic && cursor == worldSelectCursor)) + cursor = worldDefaultCursor; return modData.Cursors.ContainsKey(cursor + "-minimap") ? cursor + "-minimap" : cursor; }