diff --git a/osu.Game/Overlays/Mods/ModSelectOverlay.cs b/osu.Game/Overlays/Mods/ModSelectOverlay.cs
index 56cda6a9b5..386dd01ebd 100644
--- a/osu.Game/Overlays/Mods/ModSelectOverlay.cs
+++ b/osu.Game/Overlays/Mods/ModSelectOverlay.cs
@@ -22,16 +22,12 @@ using osu.Game.Graphics.Containers;
using osu.Game.Rulesets;
using osu.Game.Graphics.UserInterface;
using osu.Game.Overlays.Mods.Sections;
+using osu.Game.Screens;
namespace osu.Game.Overlays.Mods
{
public class ModSelectOverlay : WaveOverlayContainer
{
- ///
- /// How much this container should overflow the sides of the screen to account for parallax shifting.
- ///
- private const float overflow_padding = 50;
-
private const float content_width = 0.8f;
protected Color4 LowMultiplierColour, HighMultiplierColour;
@@ -203,11 +199,7 @@ namespace osu.Game.Overlays.Mods
Waves.FourthWaveColour = OsuColour.FromHex(@"003a4e");
Height = 510;
- Padding = new MarginPadding
- {
- Left = -overflow_padding,
- Right = -overflow_padding
- };
+ Padding = new MarginPadding { Horizontal = -OsuScreen.HORIZONTAL_OVERFLOW_PADDING };
Children = new Drawable[]
{
@@ -267,11 +259,7 @@ namespace osu.Game.Overlays.Mods
AutoSizeAxes = Axes.Y,
Direction = FillDirection.Vertical,
Width = content_width,
- Padding = new MarginPadding
- {
- Left = overflow_padding,
- Right = overflow_padding
- },
+ Padding = new MarginPadding { Horizontal = OsuScreen.HORIZONTAL_OVERFLOW_PADDING },
Children = new Drawable[]
{
new OsuSpriteText
@@ -312,8 +300,7 @@ namespace osu.Game.Overlays.Mods
Padding = new MarginPadding
{
Vertical = 10,
- Left = overflow_padding,
- Right = overflow_padding
+ Horizontal = OsuScreen.HORIZONTAL_OVERFLOW_PADDING
},
Child = ModSectionsContainer = new FillFlowContainer
{
@@ -361,8 +348,7 @@ namespace osu.Game.Overlays.Mods
Padding = new MarginPadding
{
Vertical = 15,
- Left = overflow_padding,
- Right = overflow_padding
+ Horizontal = OsuScreen.HORIZONTAL_OVERFLOW_PADDING
},
Children = new Drawable[]
{
diff --git a/osu.Game/Overlays/SearchableList/SearchableListFilterControl.cs b/osu.Game/Overlays/SearchableList/SearchableListFilterControl.cs
index 808e5df4e2..f679e0186a 100644
--- a/osu.Game/Overlays/SearchableList/SearchableListFilterControl.cs
+++ b/osu.Game/Overlays/SearchableList/SearchableListFilterControl.cs
@@ -28,6 +28,11 @@ namespace osu.Game.Overlays.SearchableList
protected abstract T DefaultTab { get; }
protected virtual Drawable CreateSupplementaryControls() => null;
+ ///
+ /// The amount of padding added to content (does not affect background or tab control strip).
+ ///
+ protected virtual float ContentHorizontalPadding => SearchableListOverlay.WIDTH_PADDING;
+
protected SearchableListFilterControl()
{
if (!typeof(T).IsEnum)
@@ -62,7 +67,11 @@ namespace osu.Game.Overlays.SearchableList
{
RelativeSizeAxes = Axes.X,
AutoSizeAxes = Axes.Y,
- Padding = new MarginPadding { Top = padding, Horizontal = SearchableListOverlay.WIDTH_PADDING },
+ Padding = new MarginPadding
+ {
+ Top = padding,
+ Horizontal = ContentHorizontalPadding
+ },
Children = new Drawable[]
{
Search = new FilterSearchTextBox
diff --git a/osu.Game/Screens/Multi/Header.cs b/osu.Game/Screens/Multi/Header.cs
index de3b6d4b0f..3448a23ac8 100644
--- a/osu.Game/Screens/Multi/Header.cs
+++ b/osu.Game/Screens/Multi/Header.cs
@@ -37,7 +37,7 @@ namespace osu.Game.Screens.Multi
new Container
{
RelativeSizeAxes = Axes.Both,
- Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING },
+ Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING + OsuScreen.HORIZONTAL_OVERFLOW_PADDING },
Children = new Drawable[]
{
new FillFlowContainer
diff --git a/osu.Game/Screens/Multi/Lounge/Components/FilterControl.cs b/osu.Game/Screens/Multi/Lounge/Components/FilterControl.cs
index 991ef61851..a027125bb5 100644
--- a/osu.Game/Screens/Multi/Lounge/Components/FilterControl.cs
+++ b/osu.Game/Screens/Multi/Lounge/Components/FilterControl.cs
@@ -13,6 +13,8 @@ namespace osu.Game.Screens.Multi.Lounge.Components
protected override Color4 BackgroundColour => OsuColour.FromHex(@"362e42");
protected override PrimaryFilter DefaultTab => PrimaryFilter.Open;
+ protected override float ContentHorizontalPadding => base.ContentHorizontalPadding + OsuScreen.HORIZONTAL_OVERFLOW_PADDING;
+
public FilterControl()
{
DisplayStyleControl.Hide();
diff --git a/osu.Game/Screens/Multi/Lounge/LoungeSubScreen.cs b/osu.Game/Screens/Multi/Lounge/LoungeSubScreen.cs
index 4779a86c4e..db0f105e0e 100644
--- a/osu.Game/Screens/Multi/Lounge/LoungeSubScreen.cs
+++ b/osu.Game/Screens/Multi/Lounge/LoungeSubScreen.cs
@@ -91,8 +91,8 @@ namespace osu.Game.Screens.Multi.Lounge
content.Padding = new MarginPadding
{
Top = Filter.DrawHeight,
- Left = SearchableListOverlay.WIDTH_PADDING - DrawableRoom.SELECTION_BORDER_WIDTH,
- Right = SearchableListOverlay.WIDTH_PADDING,
+ Left = SearchableListOverlay.WIDTH_PADDING - DrawableRoom.SELECTION_BORDER_WIDTH + HORIZONTAL_OVERFLOW_PADDING,
+ Right = SearchableListOverlay.WIDTH_PADDING + HORIZONTAL_OVERFLOW_PADDING,
};
}
diff --git a/osu.Game/Screens/Multi/Match/Components/Header.cs b/osu.Game/Screens/Multi/Match/Components/Header.cs
index 651e87f84a..29546f9b06 100644
--- a/osu.Game/Screens/Multi/Match/Components/Header.cs
+++ b/osu.Game/Screens/Multi/Match/Components/Header.cs
@@ -70,7 +70,7 @@ namespace osu.Game.Screens.Multi.Match.Components
new Container
{
RelativeSizeAxes = Axes.Both,
- Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING },
+ Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING + OsuScreen.HORIZONTAL_OVERFLOW_PADDING },
Children = new Drawable[]
{
new FillFlowContainer
diff --git a/osu.Game/Screens/Multi/Match/Components/Info.cs b/osu.Game/Screens/Multi/Match/Components/Info.cs
index f1efa73111..7894385afb 100644
--- a/osu.Game/Screens/Multi/Match/Components/Info.cs
+++ b/osu.Game/Screens/Multi/Match/Components/Info.cs
@@ -41,7 +41,7 @@ namespace osu.Game.Screens.Multi.Match.Components
{
RelativeSizeAxes = Axes.X,
AutoSizeAxes = Axes.Y,
- Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING },
+ Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING + OsuScreen.HORIZONTAL_OVERFLOW_PADDING },
Children = new Drawable[]
{
new FillFlowContainer
diff --git a/osu.Game/Screens/Multi/Match/Components/MatchSettingsOverlay.cs b/osu.Game/Screens/Multi/Match/Components/MatchSettingsOverlay.cs
index 1fec7ea53b..5b9402683e 100644
--- a/osu.Game/Screens/Multi/Match/Components/MatchSettingsOverlay.cs
+++ b/osu.Game/Screens/Multi/Match/Components/MatchSettingsOverlay.cs
@@ -79,7 +79,11 @@ namespace osu.Game.Screens.Multi.Match.Components
{
new ScrollContainer
{
- Padding = new MarginPadding { Vertical = 10 },
+ Padding = new MarginPadding
+ {
+ Horizontal = OsuScreen.HORIZONTAL_OVERFLOW_PADDING,
+ Vertical = 10
+ },
RelativeSizeAxes = Axes.Both,
Children = new[]
{
@@ -210,6 +214,7 @@ namespace osu.Game.Screens.Multi.Match.Components
Direction = FillDirection.Vertical,
Spacing = new Vector2(0, 20),
Margin = new MarginPadding { Vertical = 20 },
+ Padding = new MarginPadding { Horizontal = OsuScreen.HORIZONTAL_OVERFLOW_PADDING },
Children = new Drawable[]
{
ApplyButton = new CreateRoomButton
diff --git a/osu.Game/Screens/Multi/Match/MatchSubScreen.cs b/osu.Game/Screens/Multi/Match/MatchSubScreen.cs
index 143482ac1c..1b0efbdf09 100644
--- a/osu.Game/Screens/Multi/Match/MatchSubScreen.cs
+++ b/osu.Game/Screens/Multi/Match/MatchSubScreen.cs
@@ -75,13 +75,23 @@ namespace osu.Game.Screens.Multi.Match
{
leaderboard = new MatchLeaderboard
{
- Padding = new MarginPadding(10),
+ Padding = new MarginPadding
+ {
+ Left = 10 + HORIZONTAL_OVERFLOW_PADDING,
+ Right = 10,
+ Vertical = 10,
+ },
RelativeSizeAxes = Axes.Both,
Room = room
},
new Container
{
- Padding = new MarginPadding(10),
+ Padding = new MarginPadding
+ {
+ Left = 10,
+ Right = 10 + HORIZONTAL_OVERFLOW_PADDING,
+ Vertical = 10,
+ },
RelativeSizeAxes = Axes.Both,
Child = chat = new MatchChatDisplay(room)
{
@@ -108,7 +118,12 @@ namespace osu.Game.Screens.Multi.Match
},
};
- header.OnRequestSelectBeatmap = () => Push(new MatchSongSelect { Selected = addPlaylistItem });
+ header.OnRequestSelectBeatmap = () => Push(new MatchSongSelect
+ {
+ Selected = addPlaylistItem,
+ Padding = new MarginPadding { Horizontal = HORIZONTAL_OVERFLOW_PADDING }
+ });
+
header.Tabs.Current.ValueChanged += t =>
{
const float fade_duration = 500;
diff --git a/osu.Game/Screens/Multi/Multiplayer.cs b/osu.Game/Screens/Multi/Multiplayer.cs
index c4a505a488..da15574029 100644
--- a/osu.Game/Screens/Multi/Multiplayer.cs
+++ b/osu.Game/Screens/Multi/Multiplayer.cs
@@ -48,6 +48,8 @@ namespace osu.Game.Screens.Multi
RelativeSizeAxes = Axes.Both,
};
+ Padding = new MarginPadding { Horizontal = -HORIZONTAL_OVERFLOW_PADDING };
+
waves.AddRange(new Drawable[]
{
new Container
@@ -86,7 +88,7 @@ namespace osu.Game.Screens.Multi
Margin = new MarginPadding
{
Top = 10,
- Right = 10,
+ Right = 10 + HORIZONTAL_OVERFLOW_PADDING,
},
Text = "Create room",
Action = () => loungeSubScreen.Push(new Room
diff --git a/osu.Game/Screens/OsuScreen.cs b/osu.Game/Screens/OsuScreen.cs
index d65c582eb1..45789d7892 100644
--- a/osu.Game/Screens/OsuScreen.cs
+++ b/osu.Game/Screens/OsuScreen.cs
@@ -23,6 +23,12 @@ namespace osu.Game.Screens
{
public abstract class OsuScreen : Screen, IKeyBindingHandler, IHasDescription
{
+ ///
+ /// The amount of negative padding that should be applied to game background content which touches both the left and right sides of the screen.
+ /// This allows for the game content to be pushed byt he options/notification overlays without causing black areas to appear.
+ ///
+ public const float HORIZONTAL_OVERFLOW_PADDING = 50;
+
public BackgroundScreen Background { get; private set; }
///