mirror of
https://github.com/ppy/osu.git
synced 2024-12-05 10:23:20 +08:00
Do not deselect objects when control-clicking without hitting anything
As per feedback in https://discord.com/channels/90072389919997952/1259818301517725707/1310270647187935284.
This commit is contained in:
parent
b14dde937d
commit
b505ecc7ba
@ -433,7 +433,10 @@ namespace osu.Game.Screens.Edit.Compose.Components
|
||||
/// Finishes the current blueprint selection.
|
||||
/// </summary>
|
||||
/// <param name="e">The mouse event which triggered end of selection.</param>
|
||||
/// <returns>Whether a click selection was active.</returns>
|
||||
/// <returns>
|
||||
/// Whether the mouse event is considered to be fully handled.
|
||||
/// If the return value is <see langword="false"/>, the standard click / mouse up action will follow.
|
||||
/// </returns>
|
||||
private bool endClickSelection(MouseButtonEvent e)
|
||||
{
|
||||
// If already handled a selection, double-click, or drag, we don't want to perform a mouse up / click action.
|
||||
@ -443,14 +446,16 @@ namespace osu.Game.Screens.Edit.Compose.Components
|
||||
|
||||
if (e.ControlPressed)
|
||||
{
|
||||
// if a selection didn't occur, we may want to trigger a deselection.
|
||||
|
||||
// Iterate from the top of the input stack (blueprints closest to the front of the screen first).
|
||||
// Priority is given to already-selected blueprints.
|
||||
foreach (SelectionBlueprint<T> blueprint in SelectionBlueprints.AliveChildren.Where(b => b.IsHovered).OrderByDescending(b => b.IsSelected))
|
||||
return clickSelectionHandled = SelectionHandler.MouseUpSelectionRequested(blueprint, e);
|
||||
|
||||
return false;
|
||||
// can only be reached if there are no hovered blueprints.
|
||||
// in that case, we still want to suppress mouse up / click handling, because when control is pressed,
|
||||
// it is presumed we want to add to existing selection, not remove from it
|
||||
// (unless explicitly control-clicking a selected object, which is handled above).
|
||||
return true;
|
||||
}
|
||||
|
||||
if (selectedBlueprintAlreadySelectedOnMouseDown && SelectedItems.Count == 1)
|
||||
|
Loading…
Reference in New Issue
Block a user