Dean Herbert
a639e51ddb
Fix value not updating after missing beatmap is imported
2023-09-27 18:17:25 +09:00
Dean Herbert
175cf68bd6
Avoid re-fetching WorkingBeatmap
2023-09-27 18:13:07 +09:00
Dean Herbert
a7237e48aa
Merge branch 'master' into fix-storyboard-skin-textures-lookup
2023-09-27 17:17:51 +09:00
Dean Herbert
3705c4c8d5
Avoid potentially incorrect size adjustment when texture doesn't change
2023-09-27 17:16:45 +09:00
Dean Herbert
2481c0b64b
Don't show replay import "missing beatmap" notifications during stable import
...
Closes https://github.com/ppy/osu/issues/24926 .
2023-09-27 17:04:43 +09:00
Dean Herbert
3708e79577
Adjust logging to still expose the underlying exception
2023-09-27 16:55:03 +09:00
Dean Herbert
c44cca2c23
Fix skin version being incorrectly set to 1.0
when skin is missing skin.ini
...
Closes https://github.com/ppy/osu/issues/24939 .
2023-09-27 16:50:03 +09:00
Dean Herbert
9d8c3f0f5c
Merge pull request #24779 from smoogipoo/split-legacy-scoring-attribs
...
Split legacy scoring attribs into its own table
2023-09-26 22:35:38 +09:00
Dean Herbert
990c54519b
Merge branch 'master' into limit-gameplay-sprite-dimensions
2023-09-26 16:40:32 +09:00
Dean Herbert
ae31a8fadf
Reduce delay before loading beatmap after selection change at song select
...
This was originally set high because of performance concerns. We have
since improved things quite drastically. Even with a very low debounce
my song select is amazingly smooth.
This is about as low as we can got unless we want chaos when key
repeating left/right arrows (it's not as bad as you think, maybe worth
testing during review and see if it feels more expected?).
Of note, stable has key repeat disabled on left/right arrows and zero
debounce.
Addresses concerns in https://github.com/ppy/osu/discussions/24916 .
2023-09-26 16:21:09 +09:00
Dean Herbert
0dcf7a2fa9
Merge branch 'master' into split-legacy-scoring-attribs
2023-09-26 15:52:27 +09:00
Dean Herbert
d1d82d2b49
Improve notification display when score import fails
2023-09-26 15:00:56 +09:00
Dean Herbert
567bc8fcd3
Ensure DrawableStoryboardSprite
's texture size propagates corectly on skin change
2023-09-26 14:13:51 +09:00
Dean Herbert
2ca1c684bb
Merge branch 'master' into fix-storyboard-skin-textures-lookup
2023-09-26 14:05:27 +09:00
Bartłomiej Dach
57c00e728b
Update classic scoring algorithm to closer match stable score V1
2023-09-25 19:16:18 +02:00
Fabian van Oeffelt
2040dcabe0
Improve Code Quality
2023-09-25 17:51:39 +02:00
Fabian van Oeffelt
2a3391d83b
Remove unused namepace
2023-09-25 16:56:34 +02:00
Fabian van Oeffelt
59d3143645
Fix SR/BPM Display in Playlist rooms
2023-09-25 16:53:40 +02:00
Dean Herbert
3c62521e69
Fix OAuth refresh attempt when no network available causing full logout
2023-09-24 10:50:07 +09:00
Dean Herbert
d019cb5167
Update in line with framed clock changes
2023-09-22 22:02:18 +09:00
Dean Herbert
251a85db43
Fix StopUsingBeatmapClock
not transferring time and running state
2023-09-22 16:22:36 +09:00
Dean Herbert
faa0481fc6
Fix editor operating directly on track rather than decoupled clock
2023-09-22 16:22:36 +09:00
Dean Herbert
8367bb6bee
Don't apply decoupling to SpectatorPlayerClock
s
...
See inline comment for reasoning. It's a bit complicated.
2023-09-22 16:22:35 +09:00
Dean Herbert
6629a47ed3
Fix FramedBeatmapClock
's source not being processed
2023-09-22 16:22:35 +09:00
Dean Herbert
bf08fbe196
Set source directly in FramedBeatmapClock
ctor
...
This isn't required, but avoids creating a temporary `StopwatchClock`
and generally just makes debug easier with less state changes.
2023-09-22 16:22:35 +09:00
Dean Herbert
586311d508
Fix souce clock not always being transferred to FramedBeatmapClock
in time
2023-09-22 16:22:35 +09:00
Dean Herbert
0200b63fd3
Add note about beatmap offset not being reapplied correctly on ChangeSource
2023-09-22 14:41:07 +09:00
Dean Herbert
a1e298930c
Remove second hopefully-unnecessary workaround
2023-09-22 14:41:07 +09:00
Dean Herbert
a451ab75dd
Remove hopefully-unnecessary workaround
...
It was causing issues with the new implementation.
2023-09-22 14:41:05 +09:00
Dean Herbert
df08c4e1ad
Disable decoupling for OsuGameBase
's beatmap implementation
...
This avoids it ever mutating the underlying track (aka attempting to start
it). Resolves the one caveat mentioned in
aeef92fa710648d4a00edc523e13c17ac6104125.
2023-09-22 12:49:25 +09:00
Dean Herbert
5f634f2812
Remove unnecessary encapsulation workaround
...
The new implementation of `DecouplingClock` will not mutate the
underlying clock in any way (unless attempting to start it when
approaching from a negative time value).
This should be quite safe as a result.
2023-09-22 12:49:25 +09:00
Dean Herbert
21a2e27e5f
Simplify some pieces of FramedBeatmapClock
2023-09-22 12:49:25 +09:00
Dean Herbert
04e6ec8715
Fix interpolation not being applied when applyOffsets
is set
2023-09-22 12:49:25 +09:00
Dean Herbert
117cd74af6
Update usage of DecoupleableInterpolatingFramedClock
in FramedBeatmapClock
2023-09-22 12:49:25 +09:00
Dean Herbert
3f27be1f33
Replace most usages of DecoupleableInterpolatingFramedClock
...
Except `FramedBeatmapClock`, which is the high-effort one.
2023-09-22 12:49:25 +09:00
Dean Herbert
600651795b
Change FramedBeatmapClock
to always be decoupled
2023-09-22 12:49:25 +09:00
Salman Ahmed
5266cdc722
Add explanatory note
2023-09-21 20:41:10 +03:00
Salman Ahmed
095812c6b8
Merge branch 'master' into fix-song-select-shift-delete
2023-09-21 20:25:43 +03:00
Salman Ahmed
9e4a56d64e
Merge branch 'master' into update-framework
2023-09-21 19:49:20 +03:00
Dean Herbert
f1258a3963
Update framework
2023-09-22 01:26:38 +09:00
Dean Herbert
9af4e75dfc
Disable clipboard export for song select textbox
...
In combination with https://github.com/ppy/osu-framework/pull/5997 ,
closes https://github.com/ppy/osu/issues/24867
2023-09-22 01:24:29 +09:00
Bartłomiej Dach
69ed99dfd5
Merge branch 'master' into mania-edit-disable-sv
2023-09-21 09:13:27 +02:00
Dean Herbert
bf984388b3
Update clocks in line with framework changes
2023-09-20 21:17:08 +09:00
Bartłomiej Dach
28da5baea4
Merge branch 'master' into fix-slider-length
2023-09-20 11:10:01 +02:00
Dean Herbert
41a8239e49
Remvoe null default for mods which can't be null
2023-09-20 15:27:50 +09:00
Dean Herbert
c6cc858967
Change implementation of "show speed changes" to require explicit ruleset support
2023-09-20 15:27:30 +09:00
Dean Herbert
c5397bdbb3
Merge branch 'master' into mania-edit-disable-sv
2023-09-20 14:23:07 +09:00
Dean Herbert
71ac5cfc79
Don't bother binding to friends changes for score display purposes
2023-09-20 14:14:37 +09:00
Dean Herbert
1927b524db
Merge branch 'master' into leaderboard-friend-highlight
2023-09-20 14:14:08 +09:00
Dean Herbert
bd66285bd4
Rename parameter on LegacySpriteText
to better imply the maximum size is per glyph
2023-09-20 12:59:40 +09:00
Dean Herbert
b5e64d933c
Apply same fix to DrawableStoryboardAnimation
2023-09-20 12:54:36 +09:00
Dean Herbert
50adb5f7a7
Remove incorrectly merge conflict resolved
2023-09-20 12:54:28 +09:00
Dean Herbert
cd4651ffe3
Merge pull request #24863 from bdach/storyboard-fail
...
Fix issues after storyboard resource lookup refactor
2023-09-20 11:14:15 +09:00
Bartłomiej Dach
333b839e0d
Fix broken automatic beatmap download setting migration
2023-09-19 21:38:07 +02:00
Bartłomiej Dach
641e651bf2
Fix DrawableStoryboardVideo
attempting to unmap path once too much
...
The `StoryboardResourceLookupStore` cached at storyboard level is
supposed to already be handling that; no need for local logic anymore.
2023-09-19 20:18:33 +02:00
Bartłomiej Dach
ba518e1da8
Fix StoryboardResourceLookupStore
dying on failure to unmap path
...
Before the introduction of `StoryboardResourceLookupStore`, missing
files would softly fail by use of null fallbacks. After the
aforementioned class was added, however, the fallbacks would not work
anymore if for whatever reason `GetStoragePathFromStoryboardPath()`
failed to unmap the storyboard asset name to a storage path.
2023-09-19 20:11:16 +02:00
Dean Herbert
aea7f81f1c
Merge pull request #24800 from sw1tchbl4d3r/invalid_bank
...
Default to normal bank if invalid sample bank is specified
2023-09-19 22:28:34 +09:00
Bartłomiej Dach
c4a0ca326e
Replace sample bank fix with more correct fix
...
stable does not treat unknown enum members as `None` / `Auto`, it treats
them as `Normal`:
switch (sampleSet)
{
case SampleSet.Normal:
default:
sample = 0;
break;
case SampleSet.None:
case SampleSet.Soft:
sample = 1;
break;
case SampleSet.Drum:
sample = 2;
break;
}
(from 1531237b63/osu
!/Audio/AudioEngine.cs#L1158-L1171).
2023-09-19 13:53:49 +02:00
Dean Herbert
4a7dc4d792
Fix storyboard UseSkinSprites
being implemented incorrectly
...
This was implemented as a "fallback", but it's actually intended to be
an "override". As in it allows storyboarders to *prefer* a skin sprite
before falling back to a local version contained within the storyboard.
Can be tested with https://osu.ppy.sh/beatmapsets/832364#osu/1743837 .
Closes https://github.com/ppy/osu/issues/24813 .
2023-09-19 20:20:20 +09:00
Dean Herbert
773ec46989
Expose some storyboard pieces to allow better testability
2023-09-19 20:20:11 +09:00
Bartłomiej Dach
43ae26b8ef
Merge pull request #24809 from peppy/storyboard-resource-lookup-refactor
...
Refactor storyboard resource lookup to be more streamlined
2023-09-19 12:52:02 +02:00
Dean Herbert
067c487b21
Merge pull request #24450 from cdwcgt/missing-beatmap
...
Fetch missing beatmap when importing replay
2023-09-19 18:40:02 +09:00
Bartłomiej Dach
ed9039f60f
Fix notification text sets overwriting each other
2023-09-19 11:12:58 +02:00
Dean Herbert
05e05f8160
Increase transition speed slightly
2023-09-19 18:02:08 +09:00
Dean Herbert
cdb5fea513
Remove unused translations
2023-09-19 17:53:00 +09:00
Dean Herbert
f726c38215
Pass ArchiveReader
instead of Stream
to simplify resolution code
2023-09-19 17:49:15 +09:00
Dean Herbert
0593c76c57
Fix log output using incorrect name
2023-09-19 17:34:24 +09:00
Bartłomiej Dach
62f97a8d83
Adjust beatmap card thumbnail dim state to match web better
2023-09-19 10:28:08 +02:00
Dean Herbert
7f30354e61
Adjust sizing slightly to remove need for CollapsibleButtonContainerSlim
2023-09-19 17:20:58 +09:00
Dean Herbert
0555d22eb8
Add comment mentioning why hover is disabled on the notification type
2023-09-19 16:35:22 +09:00
Bartłomiej Dach
8e199de78a
Tweak nano beatmap card UX further to meet expectations
2023-09-19 08:36:32 +02:00
Magnus-Cosmos
73db68a49a
Check if path lists are empty
2023-09-19 02:28:28 -04:00
Bartłomiej Dach
0ffb906741
Merge pull request #24831 from peppy/update-deps
...
Update all dependencies (except for Moq)
2023-09-19 07:50:27 +02:00
Magnus-Cosmos
a9b45c6fdc
Fix slider path calculations for edge cases
2023-09-19 01:31:26 -04:00
Dean Herbert
aba98f2985
Merge pull request #24823 from bdach/scoring-test-scene-catch
...
Add scoring test scene for catch
2023-09-19 13:59:11 +09:00
Salman Ahmed
8e992de763
Fix crash when loading player instance without exiting previous instance
2023-09-19 05:09:01 +03:00
Salman Ahmed
922f6f36f2
Add size limitation for hit object numbers
2023-09-19 04:38:10 +03:00
Salman Ahmed
b823507b2a
Add size limitation for approach circles
2023-09-19 04:38:10 +03:00
Salman Ahmed
291a91be66
Change extension from retrieval to post-processing instead
2023-09-19 03:40:30 +03:00
Salman Ahmed
57dc76b345
Revert "Update GetTexture
signature rather than creating new overload"
...
This reverts commit 96f12cfbaa
.
2023-09-19 03:21:19 +03:00
Magnus-Cosmos
83584519e6
Fix extension check using control points instead of path points
2023-09-18 11:40:00 -04:00
Bartłomiej Dach
8b5a851f31
Merge branch 'master' into scoring-test-scene-catch
2023-09-18 15:15:03 +02:00
Dean Herbert
163b6df357
Merge pull request #24846 from bdach/get-reader-regression
...
Fix `MemoryStreamArchiveReader.GetStream()` failing in some cases
2023-09-18 22:06:33 +09:00
Bartłomiej Dach
25e43bd7d7
Auto-close notification after successful download
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
4cdd19bb5a
Use different copy when auto-downloading
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
3bddf4bf9a
Rename spectator-specific settings to more generic (with backwards migration)
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
27471ad170
Make missing beatmap notification simple
...
Progress didn't work for several reasons:
- It was spinning when nothing was actually happening yet
(especially egregious with autodownload off)
- It was blocking exits (as all progress notifications do)
- When actually going to download, two progress notifications would
pertain to one thing
- It wasn't helping much with the actual implementation of score
re-import, cancelling the progress notification would result in
similarly jank UX of beatmap importing but not the score.
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
b2c98da330
Reword and localise copy
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
2709c6cd67
Integrate nano beatmap card into the notification
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
47764b3012
Fix OsuTestScene.CreateAPIBeatmapSet()
not backlinking set beatmaps to the set
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
5fcd736332
Redo nano beatmap card design to fit needs better
...
Wanting to use this inside notification, it turns out that the original
design did not work very well at such narrow widths, and additionally
the typical button setup borrowed from elsewhere resulted in teeny tiny
action buttons.
To that end, slim down the design (get rid of thumbnail, audio preview,
make expandable right side slimmer), as well as change the entire panel
so that it has only one action associated with it at all times, and
clicking the panel in any place triggers that action.
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
67b5dfb9cf
Merge branch 'get-reader-regression' into missing-beatmap
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
06d1a2a316
Merge branch 'beatmap-card-nano' into missing-beatmap
2023-09-18 14:56:06 +02:00
Dean Herbert
f3b6aa5435
Merge pull request #24821 from bdach/scoring-test-scene-osu
...
Refactor scoring test scene for ruleset extensibility (and move existing instance to osu! ruleset project)
2023-09-18 19:54:14 +09:00
Bartłomiej Dach
e57d7d1205
Fix MemoryStreamArchiveReader.GetStream()
failing in some cases
...
`MemoryStreamArchiveReader` introduced in
0657b55196
would previously use
`MemoryStream.GetBuffer()` to retrieve the underlying byte buffer with
stream data. However, this is not generally the method you would want,
for two reasons:
1. It can fail if the stream wasn't created in the way that supports it.
2. As per
https://learn.microsoft.com/en-us/dotnet/api/system.io.memorystream.getbuffer?view=net-7.0#system-io-memorystream-getbuffer ,
it will return the _raw_ contents of the buffer, including
potentially unused bytes.
To fix, use `MemoryStream.ToArray()` instead, which avoids both
pitfalls. Notably, `ToArray()` always returns the full contents of the
buffer, regardless of `Position`, as documented in:
https://learn.microsoft.com/en-us/dotnet/api/system.io.memorystream.toarray?view=net-7.0#system-io-memorystream-toarray
2023-09-18 11:50:36 +02:00
Bartłomiej Dach
5c2413c06b
Implement nano beatmap card
2023-09-18 11:30:14 +02:00
Bartłomiej Dach
59b9a636d3
Fix grammar in comment
2023-09-18 10:46:14 +02:00
Bartłomiej Dach
3709861132
Merge pull request #24814 from LukynkaCZE/parse-only-supported-char-uris
...
Parse only supported schemes as URIs
2023-09-18 10:20:09 +02:00
Bartłomiej Dach
d3cc6dbaa0
Fix link protocol allowlist allowing too much
2023-09-18 09:20:24 +02:00
Dean Herbert
be026f7ff1
Bump realm once more
2023-09-17 01:27:43 +09:00
Dean Herbert
56b5f52e83
Update all dependencies (except for Moq)
2023-09-16 15:37:31 +09:00
Joseph Madamba
c2685da94c
Fix dummy beatmap showing AR 5 on song select
2023-09-15 20:26:17 -07:00
Bartłomiej Dach
ebdc501e5b
Add example scenarios and configurable score multiplier
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
5eccc771c2
Turn off non-perfect judgements for catch scoring test scene
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
0c22ff2a80
Refactor further to allow extensibility to other rulesets
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
45751dd1f2
Minimum viable changes for ruleset-specific scoring test scenes
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
a6fab28461
Merge branch 'master' into no-legacy-difficulty-control-point
2023-09-15 11:14:28 +02:00
Dean Herbert
56cc2b62f0
Make not extension method
2023-09-15 18:13:04 +09:00
Dean Herbert
0031da76ff
Move to extension method and throw on non-legacy ruleset
2023-09-15 17:38:34 +09:00
Bartłomiej Dach
9b391cd661
Merge branch 'master' into import-task-improve
2023-09-14 19:37:01 +02:00
Bartłomiej Dach
c8b18acd4d
Bring back disposal of stream after copy-out to MemoryStream
...
Was there in previous code and got removed in the refactor. I'd rather
have it than not.
2023-09-14 19:36:35 +02:00
Lukynka CZE
9b8fdcbcdc
somehow accidentally removed backslashes
2023-09-14 17:55:53 +02:00
Lukynka CZE
66751ef5bb
add regex
2023-09-14 17:46:29 +02:00
Bartłomiej Dach
6aff1d4063
Merge branch 'master' into mod-select-difficulty-multiplier-animation
2023-09-14 16:23:30 +02:00
Dean Herbert
57f32b177d
Fix incorrect handling of non-MemoryStream
pathway
2023-09-14 22:19:18 +09:00
Bartłomiej Dach
94cdcfd7ce
Move collapsed bindable back to BeatmapAttributesDisplay
for now
...
Better to have it only in one place that needs it, rather than have it
not work as expected when someone inherits
`ModFooterInformationDisplay`.
2023-09-14 14:56:58 +02:00
Bartłomiej Dach
44461b4eff
Merge branch 'master' into mod-select-diff-multiplier-visual-matching
2023-09-14 12:12:23 +02:00
Bartłomiej Dach
3f7b8dbe58
Merge branch 'master' into move-mod-select-diff-multiplier
2023-09-14 11:26:22 +02:00
Bartłomiej Dach
25dbd0a1d3
Rename variable to reflect new "beatmap attributes display" naming
2023-09-14 11:24:53 +02:00
Bartłomiej Dach
2d3be819d0
Merge pull request #24796 from peppy/collapse-preset-column
...
Collapse mod presets column slightly when not in use
2023-09-14 11:07:36 +02:00
Bartłomiej Dach
18672e178f
Merge pull request #24795 from peppy/fix-mod-rate-adjust-tooltip-x
...
Fix rate adjust mods not showing "x" prefix on customisation slider's tooltip
2023-09-14 10:18:32 +02:00
Dean Herbert
900376b662
Refactor storyboard resource lookup to be more streamlined
2023-09-14 16:15:50 +09:00
Bartłomiej Dach
68323671ec
Update framework and resources
2023-09-14 08:24:18 +02:00
Dean Herbert
7bf0a22112
Improve flash effect
2023-09-14 13:57:56 +09:00
Dean Herbert
364094fcf2
Inline all archive reader pathing
2023-09-14 13:38:23 +09:00
Dean Herbert
541cd972e1
Rename ArchiveReader
implementations to read better
2023-09-14 13:36:07 +09:00
Dean Herbert
0657b55196
Avoid MemoryStream.ToArray
overhead in LegacyByteArrayReader
2023-09-14 13:33:25 +09:00
Dean Herbert
b5902a8736
Avoid MemoryStream
overhead for incoming non-MemoryStream
in ImportTask
2023-09-14 13:29:29 +09:00
Dan Balasescu
753c1c877c
Revert masking SSBO changes
2023-09-13 23:10:13 +09:00
Dean Herbert
32946413de
Change display text from "difficulty" to "score" multiplier
2023-09-13 20:01:19 +09:00
Dean Herbert
3e1388c73f
Add vertical animation when difficulty multiplier is changed
2023-09-13 19:57:48 +09:00
Dean Herbert
824a3e4adc
Update DifficultyMultiplierDisplay
to use new shared design
2023-09-13 19:56:31 +09:00
sw1tchbl4d3
5b2af7f264
Default to none bank if invalid samplebank is specified
2023-09-13 12:44:00 +02:00
Dean Herbert
46d5aa59bf
Split base design out of BeatmapAttributesDisplay
2023-09-13 19:33:30 +09:00
Dean Herbert
9a7d1ed98b
Tidy up DifficultyMultiplierDisplay
2023-09-13 18:55:17 +09:00
Dean Herbert
35840bf671
Combine ModCounterDisplay
and DifficultyMultiplierDisplay
into one class
2023-09-13 18:51:56 +09:00
Dean Herbert
491d94c5ac
Use local shear definition
2023-09-13 18:51:50 +09:00
Dean Herbert
41b0619533
Fix shear being included on wrong side of ModCounterDisplay
2023-09-13 18:19:42 +09:00
Dean Herbert
923c2a16ed
Fix weird centering of multiplier "x"
2023-09-13 18:11:16 +09:00
Dean Herbert
21252c1c23
Fix animations
2023-09-13 18:06:50 +09:00
Dean Herbert
e241e41f2a
Fix layout decision to account for new multiplier addition
2023-09-13 17:55:21 +09:00
Dean Herbert
49114430ed
Move multiplier display to bottom of sceen to make visible while customising
2023-09-13 17:43:55 +09:00
Dean Herbert
be373391f8
Simplify multiplier display implementation
2023-09-13 17:43:41 +09:00
Dean Herbert
f5cee22db7
Collapse mod presets column slightly when not in use
2023-09-13 17:05:42 +09:00
Dean Herbert
d146da9546
Fix rate adjust mods not showing "x" prefix on customisation slider's tooltip
2023-09-13 16:43:48 +09:00
Dean Herbert
4ecc4632aa
Make rounding error even less precise
...
Basically matching the old code more closely to avoid too much precision
from doing math in a slightly different way.
2023-09-12 18:41:09 +09:00
Dean Herbert
0d7157f727
Merge branch 'master' into map_info_on_mod_settings
2023-09-12 17:16:47 +09:00
Dean Herbert
7e3652284d
Adjust various class naming and add some xmldoc
2023-09-12 17:15:16 +09:00
Dean Herbert
3da30485b2
Move shear spec to correct location
2023-09-12 17:06:45 +09:00
Dean Herbert
e40eaa7377
Improve collapse/expand animations
...
Especially when on a screen resolution where it would start collapsed.
2023-09-12 17:06:45 +09:00