Salman Ahmed
53c57661c7
Move implementtaion detail to inline comment
2022-03-11 18:34:22 +03:00
Salman Ahmed
5b70139b33
Avoid running message highlight processing more than once
2022-03-11 18:32:49 +03:00
Salman Ahmed
d07e3101ea
Improve message highlight handling in DrawableChannel
2022-03-10 23:07:15 +03:00
Salman Ahmed
b25c37ce62
Instantiate highlight background container on animation
...
Also removes the necessity of scheduling as it actually never worked as
intended, `Scheduler` will still update even when the chat line is
masked away, and the animation will never be held anyways.
The new duration of the animation should be enough for long scrolls
either way.
2022-03-10 03:49:42 +03:00
Salman Ahmed
80c0df6af5
Scroll chat line to channel center
...
We may eventually want that encapsulated within `ScrollIntoView`, as it
would also come in handy for `GameplayLeaderboard`.
2022-03-10 02:50:15 +03:00
Salman Ahmed
93cf93943f
Schedule chat line highlight after children to handle non-loaded lines
2022-03-10 02:48:33 +03:00
Salman Ahmed
2d8983383a
Revert newMessagesArrived
changes and always schedule highlight
...
In the case a message arrives and the chat overlay is hidden, clicking
on the mention notification will not work as the `HighlightedMessage`
bindable callback will execute before the scheduled `newMessagesArrived`
logic (which was hanging since the message arrived until the chat
overlay became open because of the notification).
Simplify things by always scheduling the `HighlightedMessage` bindable
callback.
2022-03-10 01:11:27 +03:00
Salman Ahmed
d74064b94b
Use Equals
instead of reference equality operator
2022-03-08 03:56:27 +03:00
Salman Ahmed
7f47be4680
Refactor message highlighting logic to rely on a Channel
data bindable
2022-03-08 03:19:37 +03:00
Salman Ahmed
30b38345aa
Add ability to highlight chat lines
2022-03-07 05:08:36 +03:00
Salman Ahmed
9bc1f3f014
Further refactor and simplify ChannelScrollContainer
2022-03-06 23:34:12 +03:00
Salman Ahmed
5b3ffb12b7
Refactor channel scrolling container to handle manual scrolls resiliently
2022-03-05 23:27:07 +03:00
Dean Herbert
52ca2f4797
Merge branch 'master' into chat-mention
2021-05-26 16:00:26 +09:00
Dean Herbert
699a317b44
Fix chat scroll sticking visually when scrolling beyond bottom extent
2021-03-29 18:07:47 +09:00
Dean Herbert
a76314a876
Use Update instead of UpdateAfterChildren (no need for the latter)
2021-02-02 15:57:17 +09:00
Dean Herbert
bb0753f68d
Use a better method of cancelling user scroll
2021-02-02 15:44:03 +09:00
Dean Herbert
398ab9c2c2
Use UserTrackingScrollContainer instead
2021-02-02 15:29:38 +09:00
Salman Ahmed
5c28c030c8
Unconditionally set "autoscroll" state
2021-02-01 22:08:57 +03:00
Salman Ahmed
15fcabb128
Add documentation to auto-scroll leniency
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-02-01 22:04:44 +03:00
Salman Ahmed
49e62c3a4b
Apply documentation changes
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2021-02-01 11:02:08 +03:00
Salman Ahmed
e806e5bcd1
Improve robustness of chat auto-scrolling logic
...
Fix auto-scrolling state changing by old messages removal logic
2021-01-31 23:45:49 +03:00
Dean Herbert
d096f2f8f6
Fix potential cross-thread operation during chat channel load
...
The callbacks are scheduled to the API thread, but hooked up in BDL
load. This causes a potential case of cross-thread collection
enumeration.
I've tested and it seems like the schedule logic should be fine for
short term. Longer term, we probably want to re-think how this works so
background operations aren't performed on the `DrawableChannel` in the
first place (chat shouldn't have an overhead like this when not
visible).
Closes #11231 .
2020-12-21 16:39:50 +09:00
Dean Herbert
c73d45bc01
Reduce initial channel load overhead by only loading history on active channel
2020-04-29 15:23:28 +09:00
Dean Herbert
1b6342438f
Hide scrollbars in tournament chat display
2020-03-23 12:05:16 +09:00
Craftplacer
5f96940b7d
Remove unused injection
2020-01-19 17:56:01 +01:00
Craftplacer
32c2023517
Remove refactor in DrawableChannel
2020-01-19 17:20:54 +01:00
Craftplacer
8a9c90c5e6
Resolve CA errors #2
2020-01-18 16:18:17 +01:00
Craftplacer
8ddd36596e
Revert useless changes varying from properties, naming changes etc.
2020-01-18 15:40:55 +01:00
Craftplacer
1b53c0ff74
Remove populated property, and other changes
2020-01-16 23:15:30 +01:00
Craftplacer
0d812bce9f
WIP changes for code review
2019-12-26 03:32:40 +01:00
Craftplacer
b6c31e7764
Remove ignore list, move code to MessageNotifier and add it to DI
...
This also adds countable private message notifications.
2019-12-17 06:59:27 +01:00
Craftplacer
1a1253a4aa
Add null check to ScrollToAndHighlightMessage
2019-12-16 03:27:19 +01:00
Craftplacer
997b51b1f8
Make messageRemoved use helper method
2019-12-16 03:26:30 +01:00
Craftplacer
0225372e83
Rename method to ScrollToAndHighlightMessage
2019-12-16 03:24:07 +01:00
Craftplacer
eb3f851ce2
Split Notification class into three separate ones
2019-12-16 03:22:55 +01:00
Craftplacer
8b14090c95
Remove unused field
2019-12-16 02:13:26 +01:00
Craftplacer
20670730b9
Resolve code formatting
2019-12-16 01:57:07 +01:00
Craftplacer
15c25c571d
Merge remote-tracking branch 'upstream/master' into chat-mention
2019-12-16 00:59:06 +01:00
Craftplacer
8dfc8929f1
Add chat and notification logic to DrawableChannel
...
with alongside multiple helper methods
2019-12-16 00:48:22 +01:00
Dean Herbert
45514ff660
Apply fixes
2019-11-25 11:30:55 +09:00
Dean Herbert
54befb6f8f
Remove adjacent day separators
2019-10-29 15:45:41 +09:00
Dean Herbert
b06e70e546
Add failing test showing issue with day separator logic
2019-10-29 15:27:08 +09:00
Dean Herbert
09a6d1184a
Tidy up order of scroll changes
2019-10-29 14:33:05 +09:00
Dean Herbert
d1c6e3f620
Add test for scroll to end when max history is exceeded
2019-10-29 14:32:52 +09:00
Dean Herbert
e9aa7f3218
Subclass and use yellow for stand-alone chat display
2019-10-23 00:24:19 +09:00
Dean Herbert
3b4823abe7
Use foreach
2019-10-23 00:17:37 +09:00
Dean Herbert
0ba287a7fd
Rename variable
2019-10-23 00:14:22 +09:00
Andrei Zavatski
09b2f11bd5
Remove unused variable
2019-10-22 03:14:20 +03:00
Andrei Zavatski
b1eac6b400
Apply suggested changes
2019-10-22 03:11:19 +03:00
Andrei Zavatski
e9ae838f46
CI fixes
2019-10-22 02:16:52 +03:00