···24242525namespace osu.Framework
2626{
2727- public abstract class Game : Container, IKeyBindingHandler<FrameworkAction>, IHandleGlobalInput
2727+ public abstract class Game : Container, IKeyBindingHandler<FrameworkAction>, IHandleGlobalKeyboardInput
2828 {
2929 public IWindow Window => Host?.Window;
3030
···3344using System.Collections.Generic;
55using osu.Framework.Input;
66-using osuTK;
66+using osu.Framework.Input.Events;
7788namespace osu.Framework.Graphics.Containers
99{
···2828 {
2929 // when blocking non-positional input behind us, we still want to make sure the global handlers receive events
3030 // but we don't want other drawables behind us handling them.
3131- queue.RemoveAll(d => !(d is IHandleGlobalInput));
3131+ queue.RemoveAll(d => !(d is IHandleGlobalKeyboardInput));
3232 }
33333434 return base.BuildNonPositionalInputQueue(queue, allowBlocking);
3535 }
36363737- internal override bool BuildPositionalInputQueue(Vector2 screenSpacePos, List<Drawable> queue)
3737+ protected override bool Handle(UIEvent e)
3838 {
3939- if (PropagatePositionalInputSubTree && HandlePositionalInput && BlockPositionalInput && ReceivePositionalInputAt(screenSpacePos))
3939+ switch (e)
4040 {
4141- // when blocking positional input behind us, we still want to make sure the global handlers receive events
4242- // but we don't want other drawables behind us handling them.
4343- queue.RemoveAll(d => !(d is IHandleGlobalInput));
4141+ case ScrollEvent _:
4242+ if (BlockPositionalInput && base.ReceivePositionalInputAt(e.ScreenSpaceMousePosition))
4343+ return true;
4444+4545+ break;
4646+4747+ case MouseEvent _:
4848+ if (BlockPositionalInput)
4949+ return true;
5050+5151+ break;
4452 }
45534646- return base.BuildPositionalInputQueue(screenSpacePos, queue);
5454+ return base.Handle(e);
4755 }
4856 }
4957}
+1-1
osu.Framework/Graphics/Cursor/TooltipContainer.cs
···1717 /// <summary>
1818 /// Displays Tooltips for all its children that inherit from the <see cref="IHasTooltip"/> or <see cref="IHasCustomTooltip"/> interfaces. Keep in mind that only children with <see cref="Drawable.HandlePositionalInput"/> set to true will be checked for their tooltips.
1919 /// </summary>
2020- public class TooltipContainer : CursorEffectContainer<TooltipContainer, ITooltipContentProvider>, IHandleGlobalInput
2020+ public class TooltipContainer : CursorEffectContainer<TooltipContainer, ITooltipContentProvider>
2121 {
2222 private readonly CursorContainer cursorContainer;
2323 private readonly ITooltip defaultTooltip;
···2020 /// support for pinning items, causing them to be displayed before all other items at the
2121 /// start of the list.
2222 /// </summary>
2323+ /// <remarks>
2424+ /// If a multi-line (or vertical) tab control is required, <see cref="TabFillFlowContainer.AllowMultiline"/> must be set to true.
2525+ /// Without this, <see cref="TabControl{T}"/> will automatically hide extra items.
2626+ /// </remarks>
2327 /// <typeparam name="T">The type of item to be represented by tabs.</typeparam>
2428 public abstract class TabControl<T> : CompositeDrawable, IHasCurrentValue<T>, IKeyBindingHandler<PlatformAction>
2529 {
···363367 {
364368 private bool allowMultiline;
365369370370+ /// <summary>
371371+ /// Whether tabs should be allowed to flow beyond a single line. If set to false, overflowing tabs will be automatically hidden.
372372+ /// </summary>
366373 public bool AllowMultiline
367374 {
368375 get => allowMultiline;
···44namespace osu.Framework.Input
55{
66 /// <summary>
77- /// Denotes that this class handles input globally.
77+ /// Denotes that this class handles keyboard input globally.
88 /// </summary>
99- public interface IHandleGlobalInput
99+ public interface IHandleGlobalKeyboardInput
1010 {
1111 }
1212}
+1-1
osu.Framework/Input/PlatformActionContainer.cs
···1414 /// can be created to handle events that should trigger specifically on a focused drawable.
1515 /// Will send repeat events by default.
1616 /// </summary>
1717- public class PlatformActionContainer : KeyBindingContainer<PlatformAction>, IHandleGlobalInput
1717+ public class PlatformActionContainer : KeyBindingContainer<PlatformAction>, IHandleGlobalKeyboardInput
1818 {
1919 [Resolved]
2020 private GameHost host { get; set; }
+1-1
osu.Framework/Testing/TestBrowser.cs
···3333namespace osu.Framework.Testing
3434{
3535 [Cached]
3636- public class TestBrowser : KeyBindingContainer<TestBrowserAction>, IKeyBindingHandler<TestBrowserAction>, IHandleGlobalInput
3636+ public class TestBrowser : KeyBindingContainer<TestBrowserAction>, IKeyBindingHandler<TestBrowserAction>, IHandleGlobalKeyboardInput
3737 {
3838 public TestScene CurrentTest { get; private set; }
3939