1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-12 01:47:24 +08:00
Commit Graph

250 Commits

Author SHA1 Message Date
Bartłomiej Dach
75300ca229
Switch search box to initially unfocused
Done primarily to keep mod hotkeys working without any behavioural
changes when mod select is opened.
2023-06-18 15:58:50 +02:00
Bartłomiej Dach
a49af06e88
Reword comments in ModSelectOverlay 2023-06-18 14:34:33 +02:00
Bartłomiej Dach
28f929dc4d
Remove yet another redundant guard 2023-06-18 14:28:26 +02:00
Cootz
d219b5f77f Reword change focus comment 2023-06-09 17:10:13 +03:00
Cootz
c3b50e1309 Move the multiplier back to TopRight 2023-06-09 16:25:04 +03:00
Cootz
71e6f80c40 Add hotkey for switching search bar focus 2023-06-05 15:54:19 +03:00
Cootz
3ebc801484 Move (de)select all mods hotkeys handling to ModSelectOverlay 2023-06-05 13:49:07 +03:00
Cootz
a46f5b90d4 Move focus handling into PopIn 2023-06-04 18:11:44 +03:00
Cootz
32b9e6ec8f Make search bar active by default 2023-06-04 17:02:46 +03:00
Cootz
69b640a185 Remove hotkeys handling from DeselectAllModsButton 2023-06-03 10:47:48 +03:00
Cootz
9d4ba5d64a Remove unnecessary null checks 2023-06-02 12:00:03 +03:00
Cootz
4c7cca101e Rename IsValid to Visible 2023-06-02 11:33:38 +03:00
Cootz
325c114c1c Remove redundant xmldocs 2023-06-02 10:39:27 +03:00
Cootz
39489358fa Apply appearance animation to aboveColumnsContent 2023-06-01 14:07:05 +03:00
Cootz
0e5c99b760 Fix search bar showing incorrectly 2023-05-28 13:12:57 +03:00
Cootz
c3f06ad2db
Merge branch 'master' into add-mod-search-option 2023-05-23 08:55:57 +03:00
Cootz
67bf1b4dfe Select/deselect first visible mod when GlobalAction.Select is triggered 2023-05-21 11:05:01 +03:00
Cootz
6647d95ea7 Kill search focus when clicking on ModColumn 2023-05-14 18:32:16 +03:00
Cootz
2467813d81 Block deselect all short key when using the search box 2023-05-09 16:14:42 +03:00
Cootz
cbb9f0100e Update PopIn and PopOut filtering. Expose SearchTerm 2023-05-06 11:27:06 +03:00
Cootz
54757df51f Fix mod deselect button not working properly when search applied 2023-05-05 09:31:27 +03:00
Cootz
1ac9d900e1 Clear search on ModSelectOverlay.Hide 2023-05-04 19:24:37 +03:00
Cootz
152d2678d5 Fix ModSelectColumn completely disappear from ModSelectOverlay 2023-05-03 14:00:46 +03:00
Cootz
a6ca049739 Manually implement @bdach prototype 2023-05-02 14:15:33 +03:00
Dean Herbert
e808e7316b Mark delegate value unused and add comment to avoid future regression 2023-05-02 13:29:30 +09:00
Bartłomiej Dach
2e3daf0a54
Fix leak of ModSettingChangeTracker instances
The `SelectedMods.BindValueChanged()` callback in `ModSelectOverlay` can
in some instances run recursively. This is most heavily leaned on in
scenarios where `SelectedMods` is updated by an external component. In
such cases, the mod select overlay needs to replace the mod instances
received externally with mod instances which it owns, so that the changes
made on the overlay can propagate outwards.

This in particular means that prior to this commit, it was possible to
encounter the following scenario:

	modSettingChangeTracker?.Dispose();
	updateFromExternalSelection(); // mutates SelectedMods to perform the replacement
	                               // therefore causing a recursive call

		modSettingChangeTracker?.Dispose();
		// inner call continues
		modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);

	// outer call continues
	modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);

This leaks one `modSettingChangeTracker` instance from the inner call,
which is never disposed.

To avoid this, move the disposal to the same side of the recursion that
the creation happens on, changing the call pattern to:

	updateFromExternalSelection(); // mutates SelectedMods to perform the replacement
	                               // therefore causing a recursive call

		modSettingChangeTracker?.Dispose();
		// inner call continues
		modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);

	modSettingChangeTracker?.Dispose();
	// outer call continues
	modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);

which, while slightly wasteful, does not cause any leaks.

The solution is definitely suboptimal, but addressing this properly
would entail a major rewrite of the mod instance management in the mods
overlay, which is probably not the wisest move to make right now.
2023-04-30 17:31:41 +02:00
Cootz
b795e8ac5a Use ModSearch in ModeSelectOverlay 2023-04-27 17:26:35 +03:00
Cootz
3c6141f233 Add ModSearch 2023-04-27 17:08:29 +03:00
Hy0tic
56ab029a58 fix issue where multipler does not update when adjusting speed for preset mod 2023-04-22 13:30:08 -04:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
ansel
b056cac10a Remove generic and add default implementation for CalculateEffect 2022-09-10 08:34:29 +03:00
ansel
545e0bbcef Adjust inheritors and test 2022-08-29 22:49:25 +03:00
ansel
039f009562 Inherit difficulty multiplier display from ModsEffectDiplay 2022-08-27 20:26:05 +03:00
Bartłomiej Dach
3109066e34
Rename {Requires -> Pending}Configuration 2022-08-16 22:45:24 +02:00
Bartłomiej Dach
10daac6752
Only open mod customisation panel on explicit selection of single mod 2022-08-15 20:38:23 +02:00
Bartłomiej Dach
f860bc11ee
Fix several schedule-related issues arising from new column addition 2022-08-15 20:38:16 +02:00
Bartłomiej Dach
5ff2e41a55
Add preset column to mod select test scene 2022-08-15 18:38:37 +02:00
Bartłomiej Dach
839409d7ac
Add preset column to solo mod select overlay 2022-08-07 16:20:31 +02:00
Bartłomiej Dach
b318bbd5e6
Allow non-homogenous column types in mod select overlay 2022-08-07 16:20:31 +02:00
Salman Ahmed
89653b74c7 Only add setting tracker when customisation is permitted 2022-07-19 19:21:16 +03:00
Salman Ahmed
eddae7b143 Fix mod overlay and footer not updating multiplayer on settings change 2022-07-18 07:38:56 +03:00
Dean Herbert
a03abc747b Tidy up comments and simplify bounding box centre logic 2022-07-02 12:58:34 +09:00
Jamie Taylor
9d28d5f8ee
Update SFX for mod overlay show/hide 2022-07-01 20:43:12 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Bartłomiej Dach
73124d2b1f
Encapsulate mod hotkey selection logic in strategy pattern 2022-06-21 12:49:01 +02:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Bartłomiej Dach
071e158a29
Expose available mod state outwardly as a bindable 2022-05-25 23:06:12 +02:00
Bartłomiej Dach
f0303d76e8
Split off "select all mods" button to separate class 2022-05-25 22:18:30 +02:00
Bartłomiej Dach
a4bd399b0c
Split off "deselect all mods" button to separate class 2022-05-25 22:14:45 +02:00
Dean Herbert
062ffe64ac Remove delay on pop in 2022-05-17 18:21:19 +09:00