Dean Herbert
aed7ba9508
Change order of application to avoid bias to side with more room to drag
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2024-07-23 20:56:21 +09:00
Dean Herbert
cc4ed0ff3f
Use non-screen-space coordinates and add time-based drag ramping for better control
2024-07-23 18:59:22 +09:00
Bartłomiej Dach
38fc6f70f6
Add tolerance when drag-scrolling editor timeline
...
Closes https://github.com/ppy/osu/issues/28983 .
While the direct cause of this is most likely mouse confine in
full-screen, it shouldn't/can't really be disabled just for this,
and I also get this on linux in *windowed* mode.
In checking other apps, adding some tolerance to this sort of
drag-scroll behaviour seems like a sane UX improvement anyways.
2024-07-23 11:10:18 +02:00
Bartłomiej Dach
bdeea37a44
Commit active placement when starting drag selection via timeline
...
This was reported in https://github.com/ppy/osu/pull/28474 , albeit the
code changes proposed there did not fix the issue at all.
See 8b6385f7d0
for demonstration of the
crash scenario. Basically what is happening there is:
- The starting premise is that there is a spinner placement active.
- At this time, a drag selection is started via the timeline.
- Once the drag selection finds at least one suitable object to select,
it mutates `SelectedItems`.
- When selection changes for any reason, the `HitObjectComposer`
decides to switch to the "select" tool, regardless of why
the selection changed.
- Changing the active tool causes the current placement - if any -
to be committed, which mutates the beatmap.
- Back at the drag box selection code, this causes a "collection
modified when enumerating" exception.
The proposed fix here is to eagerly commit active placement - if any -
when drag selection is initiated via the timeline, which avoids this
issue. This also appears to vaguely match stable behaviour and is sort
of consistent with the logic of committing any outstanding changes upon
switching to the selection tool.
2024-06-14 09:32:40 +02:00
Andrei Zavatski
4cefa8bb8d
Reduce allocations in TimelineBlueprintContainer
2024-02-21 23:13:10 +03:00
Dean Herbert
214d7e07fa
Add TODO regarding failing stack display code
2023-05-17 17:52:17 +09:00
Dean Herbert
9563d4f730
Fix weird purple tint on placement object in timeline
2023-05-17 17:26:19 +09:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
ekrctb
fcb9e2cc00
Refactor blueprint container drag code
2022-10-11 22:39:53 +09:00
ekrctb
29cc554632
Ensure blueprint is added for selected hit object
2022-10-06 13:59:54 +09:00
ekrctb
b0213c29e9
Use mid time instead of start time
...
It is closer to the old blueprint-based behavior
2022-10-05 22:19:22 +09:00
ekrctb
3108c42ece
Fix inspect issues
2022-10-05 22:04:43 +09:00
ekrctb
00b3d97f69
Improve timeline selection performance
...
But selecting a large number of hit objects is still very slow
because all DHOs must be added
and also `AddBlueprintFor` has quadratic behaviors
2022-10-05 21:58:05 +09:00
ekrctb
0ffde02f79
Use hit object time for timeline selection
2022-10-05 21:51:01 +09:00
ekrctb
8d29e9e76b
Move selection logic from DragBox to BlueprintContainer
2022-10-05 21:51:01 +09:00
Dean Herbert
a215d009fe
Update Remove
/RemoveRange
/RemoveAll
calls in line with framework changes
2022-08-29 15:57:40 +09:00
Salman Ahmed
a5e5172b91
Fix BlueprintContainer
eating input from skin editor buttons
2022-06-18 18:28:36 +03:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Salman Ahmed
fa4930c586
Remove no longer necessary ReceivePositionalInputAt
overrides in timeline components
2022-06-14 00:19:47 +03:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
Dean Herbert
957a0686ed
Split out nested classes from TimelineBlueprintContainer
...
They got too big.
2021-07-22 15:48:08 +09:00
Dean Herbert
b5cc9010de
Move resolved property to top of class
2021-07-22 15:39:01 +09:00
Derrick Timmermans
9d43ca122f
Allow context menus to be triggered as well
2021-07-21 12:04:09 +02:00
Derrick Timmermans
a8cf6a6854
Fix slight Y position offset in HandleDrag
2021-07-20 23:00:58 +02:00
Derrick Timmermans
bfec87b082
Let TimelineBlueprintContainer only accept positional input within timeline quad
2021-07-20 22:30:50 +02:00
Derrick Timmermans
2e2a2bdd99
Allow moving timeline selection when mousedown event is outside of blueprint container
2021-07-18 18:06:59 +02:00
Derrick Timmermans
ee220feecf
Avoid using guesses to determine whether inputs blocked
2021-07-18 16:04:23 +02:00
Derrick Timmermans
e35cff99c7
Pass on mouseDown input to timeline if no selection modification is made with that input
2021-07-16 17:21:43 +02:00
Derrick Timmermans
3e8a13bfbf
Allow interacting with timeline objects outside of drawable bounds
2021-07-16 16:16:34 +02:00
ekrctb
0b351c9922
Fix "possible NRE" inspection
2021-06-23 10:57:04 +09:00
Dean Herbert
4c9d72e62a
Ensure EditorBeatmap.Update
is called inside PerformOnSelection
calls
2021-05-23 21:22:35 +09:00
Dean Herbert
7ec5ea1eb5
Remove hitobject terminology from base classes
2021-04-27 19:01:29 +09:00
Dean Herbert
f2e56bd306
Refactor editor selection/blueprint components to be generic
2021-04-27 19:01:29 +09:00
Dean Herbert
a5364b224f
Add simple key based time nudging support to editor
2021-04-22 18:47:04 +09:00
Dean Herbert
e543db9bee
Use additive blending for background box
...
Doesn't make a huge difference but this was intended.
2021-04-14 14:56:28 +09:00
Dean Herbert
00f235760d
Update visual appearance of timeline blueprints to close match new designs
2021-04-13 19:26:20 +09:00
Dean Herbert
9d0839be8f
Remove no longer necessary FinishTranforms call
2021-04-06 15:35:07 +09:00
Dean Herbert
316a557a99
Split select area background into own class to reduce hover state complexity
2021-04-06 15:34:34 +09:00
Dean Herbert
7d301a6336
Improve timeline hover display before time zero with a gradient fade
2021-04-06 14:34:16 +09:00
Dean Herbert
35dd1c68aa
Fix drag/selection events not propagating correctly to TimelineBlueprintContainer when before time zero
2021-04-06 14:34:16 +09:00
Dean Herbert
cb48e5f158
Fix timeline not visually ordering hitobjects in a stable way
2021-03-26 16:33:18 +09:00
Dean Herbert
9fdd23b134
Fix various issues with stacking
2021-03-25 16:28:30 +09:00
Dean Herbert
7b3336783f
Stabilise ordering instead of simple reversing
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-03-25 15:24:59 +09:00
Dean Herbert
71a361337d
Add comment regarding usage of Reverse()
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-03-19 21:57:48 +09:00
Dean Herbert
563a0584d5
Implement editor timeline stacking support
2021-03-19 18:48:51 +09:00
Dean Herbert
423c6158e1
Highlight timeline drag area when hovered for better visibility
2020-12-21 18:10:11 +09:00
Dean Herbert
d1be7c23d9
Increase height of timeline drag area
2020-12-21 18:09:56 +09:00
smoogipoo
783c172b5d
Make sealed and cleanup comparator
2020-11-18 13:33:22 +09:00
smoogipoo
58c8184ad7
Define blueprint order similarly to hitobjects
2020-11-17 22:56:31 +09:00
Bartłomiej Dach
610ed99ae3
Add null checks to unguarded resolved-as-null fields
2020-11-14 14:52:58 +01:00