@@ -1319,10 +1319,12 @@ impl Widget for RoomScreen {
1319
1319
} ;
1320
1320
let ( item, item_new_draw_status) = match timeline_item. kind ( ) {
1321
1321
TimelineItemKind :: Event ( event_tl_item) => {
1322
- let event_tl_item_wrapper = & MessageViewFromEventWrapperETI ( event_tl_item) ;
1322
+ let event_tl_item_wrapper =
1323
+ & MessageViewFromEventWrapperETI ( event_tl_item) ;
1323
1324
match event_tl_item. content ( ) {
1324
1325
TimelineItemContent :: Message ( message) => {
1325
- let prev_event = tl_idx. checked_sub ( 1 ) . and_then ( |i| tl_items. get ( i) ) ;
1326
+ let prev_event =
1327
+ tl_idx. checked_sub ( 1 ) . and_then ( |i| tl_items. get ( i) ) ;
1326
1328
let prev_event = prev_event. map ( PreviousWrapperTI ) ;
1327
1329
let message = & MessageWrapperTM ( message) ;
1328
1330
populate_message_view (
@@ -1341,7 +1343,8 @@ impl Widget for RoomScreen {
1341
1343
)
1342
1344
}
1343
1345
TimelineItemContent :: Sticker ( sticker) => {
1344
- let prev_event = tl_idx. checked_sub ( 1 ) . and_then ( |i| tl_items. get ( i) ) ;
1346
+ let prev_event =
1347
+ tl_idx. checked_sub ( 1 ) . and_then ( |i| tl_items. get ( i) ) ;
1345
1348
let prev_event = prev_event. map ( PreviousWrapperTI ) ;
1346
1349
populate_message_view (
1347
1350
cx,
@@ -1700,22 +1703,42 @@ impl RoomScreen {
1700
1703
TimelineUpdate :: OwnUserReadReceipt ( receipt) => {
1701
1704
tl. latest_own_user_receipt = Some ( receipt) ;
1702
1705
}
1703
- TimelineUpdate :: SearchResultReceived { items, count, highlights, search_term, profile_infos } => {
1704
- let mut criteria = self . view . search_result ( id ! ( search_result_plane) ) . get_search_criteria ( ) ;
1706
+ TimelineUpdate :: SearchResultReceived {
1707
+ items,
1708
+ count,
1709
+ highlights,
1710
+ search_term,
1711
+ profile_infos,
1712
+ } => {
1713
+ let mut criteria = self
1714
+ . view
1715
+ . search_result ( id ! ( search_result_plane) )
1716
+ . get_search_criteria ( ) ;
1705
1717
if criteria. search_term != search_term {
1706
1718
tl. search_result_state . items = Vector :: new ( ) ;
1707
1719
}
1708
1720
tl. search_result_state . profiles_info = profile_infos;
1709
1721
criteria. search_term = search_term;
1710
- self . view . search_result ( id ! ( search_result_plane) ) . set_search_criteria ( cx, criteria) ;
1711
- self . view . search_result ( id ! ( search_result_plane) ) . set_result_count ( cx, count) ;
1722
+ self . view
1723
+ . search_result ( id ! ( search_result_plane) )
1724
+ . set_search_criteria ( cx, criteria) ;
1725
+ self . view
1726
+ . search_result ( id ! ( search_result_plane) )
1727
+ . set_result_count ( cx, count) ;
1712
1728
self . view . view ( id ! ( search_timeline) ) . set_visible ( cx, true ) ;
1713
- tl. search_result_state . content_drawn_since_last_update . clear ( ) ;
1714
- tl. search_result_state . profile_drawn_since_last_update . clear ( ) ;
1729
+ tl. search_result_state
1730
+ . content_drawn_since_last_update
1731
+ . clear ( ) ;
1732
+ tl. search_result_state
1733
+ . profile_drawn_since_last_update
1734
+ . clear ( ) ;
1715
1735
for item in items {
1716
1736
tl. search_result_state . items . push_front ( item. clone ( ) ) ;
1717
1737
}
1718
- search_portal_list. set_first_id_and_scroll ( tl. search_result_state . items . len ( ) . saturating_sub ( 1 ) , 0.0 ) ;
1738
+ search_portal_list. set_first_id_and_scroll (
1739
+ tl. search_result_state . items . len ( ) . saturating_sub ( 1 ) ,
1740
+ 0.0 ,
1741
+ ) ;
1719
1742
search_portal_list. set_tail_range ( true ) ;
1720
1743
jump_to_bottom. update_visibility ( cx, true ) ;
1721
1744
tl. search_result_state . highlighted_strings = highlights;
@@ -1989,7 +2012,12 @@ impl RoomScreen {
1989
2012
// as the logic used in `populate_message_view()`.
1990
2013
let mut success = false ;
1991
2014
if self . view ( id ! ( search_timeline) ) . visible ( ) {
1992
- search_result:: search_result_copy_html_to_clipboard ( cx, & details, tl, & mut success) ;
2015
+ search_result:: search_result_copy_html_to_clipboard (
2016
+ cx,
2017
+ & details,
2018
+ tl,
2019
+ & mut success,
2020
+ ) ;
1993
2021
} else if let Some ( event_tl_item) = tl. items
1994
2022
. get ( details. item_id )
1995
2023
. and_then ( |tl_item| tl_item. as_event ( ) )
@@ -2073,7 +2101,9 @@ impl RoomScreen {
2073
2101
continue ;
2074
2102
} ;
2075
2103
let tl_idx = if search_timeline_widget. visible ( ) {
2076
- if let Some ( index) = search_result:: search_result_jump_to_related ( cx, & details, tl) {
2104
+ if let Some ( index) =
2105
+ search_result:: search_result_jump_to_related ( cx, & details, tl)
2106
+ {
2077
2107
index
2078
2108
} else {
2079
2109
error ! ( "BUG: MessageAction::JumpToRelated had not related event ID." ) ;
@@ -3185,7 +3215,7 @@ impl <'a> PreviousMessageViewFromEvent<MessageViewFromEventWrapperETI<'a>> for P
3185
3215
///
3186
3216
/// The content of the returned `Message` widget is populated with data from a message
3187
3217
/// or sticker and its containing `EventTimelineItem`.
3188
- pub fn populate_message_view < T , P , M > (
3218
+ pub fn populate_message_view < T , P , M > (
3189
3219
cx : & mut Cx2d ,
3190
3220
list : & mut PortalList ,
3191
3221
item_id : usize ,
@@ -3198,7 +3228,12 @@ pub fn populate_message_view<T,P,M>(
3198
3228
is_contextual : bool ,
3199
3229
item_drawn_status : ItemDrawnStatus ,
3200
3230
room_screen_widget_uid : WidgetUid ,
3201
- ) -> ( WidgetRef , ItemDrawnStatus ) where T : MessageViewFromEvent , P : PreviousMessageViewFromEvent < T > , M : ContextMenuFromEvent {
3231
+ ) -> ( WidgetRef , ItemDrawnStatus )
3232
+ where
3233
+ T : MessageViewFromEvent ,
3234
+ P : PreviousMessageViewFromEvent < T > ,
3235
+ M : ContextMenuFromEvent ,
3236
+ {
3202
3237
let mut new_drawn_status = item_drawn_status;
3203
3238
let ts_millis = event_tl_item. timestamp ( ) ;
3204
3239
@@ -3227,23 +3262,21 @@ pub fn populate_message_view<T,P,M>(
3227
3262
} else {
3228
3263
let html_or_plaintext_ref = item. html_or_plaintext ( id ! ( content. message) ) ;
3229
3264
if message. is_searched_result ( ) {
3230
- html_or_plaintext_ref. apply_over ( cx, live ! (
3231
- html_view = {
3232
- html = {
3233
- font_color: ( vec3( 0.0 , 0.0 , 0.0 ) ) ,
3234
- draw_block: {
3235
- code_color: ( SEARCH_HIGHLIGHT )
3265
+ html_or_plaintext_ref. apply_over (
3266
+ cx,
3267
+ live ! (
3268
+ html_view = {
3269
+ html = {
3270
+ font_color: ( vec3( 0.0 , 0.0 , 0.0 ) ) ,
3271
+ draw_block: {
3272
+ code_color: ( SEARCH_HIGHLIGHT )
3273
+ }
3236
3274
}
3237
3275
}
3238
- }
3239
- ) ) ;
3276
+ ) ,
3277
+ ) ;
3240
3278
}
3241
- populate_text_message_content (
3242
- cx,
3243
- & html_or_plaintext_ref,
3244
- body,
3245
- formatted. as_ref ( ) ,
3246
- ) ;
3279
+ populate_text_message_content ( cx, & html_or_plaintext_ref, body, formatted. as_ref ( ) ) ;
3247
3280
new_drawn_status. content_drawn = true ;
3248
3281
( item, false )
3249
3282
}
@@ -3622,7 +3655,7 @@ pub fn populate_message_view<T,P,M>(
3622
3655
& message,
3623
3656
has_html_body,
3624
3657
) ,
3625
- should_be_highlighted : event_tl_item. is_highlighted ( )
3658
+ should_be_highlighted : event_tl_item. is_highlighted ( ) ,
3626
3659
} ) ;
3627
3660
3628
3661
// Set the timestamp.
@@ -3639,9 +3672,12 @@ pub fn populate_message_view<T,P,M>(
3639
3672
. set_text ( cx, & format ! ( "{}" , ts_millis. get( ) ) ) ;
3640
3673
}
3641
3674
if is_contextual {
3642
- item. view ( id ! ( overlay_message) ) . apply_over ( cx, live ! {
3643
- draw_bg: { color: ( vec4( 1.0 , 1.0 , 1.0 , 0.5 ) ) , }
3644
- } ) ;
3675
+ item. view ( id ! ( overlay_message) ) . apply_over (
3676
+ cx,
3677
+ live ! {
3678
+ draw_bg: { color: ( vec4( 1.0 , 1.0 , 1.0 , 0.5 ) ) , }
3679
+ } ,
3680
+ ) ;
3645
3681
}
3646
3682
( item, new_drawn_status)
3647
3683
}
@@ -4133,7 +4169,9 @@ impl SmallStateEventContent<MessageViewFromEventWrapperETI<'_>> for timeline::Ot
4133
4169
_item_drawn_status : ItemDrawnStatus ,
4134
4170
mut new_drawn_status : ItemDrawnStatus ,
4135
4171
) -> ( WidgetRef , ItemDrawnStatus ) {
4136
- let item = if let Some ( text_preview) = text_preview_of_other_state ( self . content ( ) , false , self . state_key ( ) ) {
4172
+ let item = if let Some ( text_preview) =
4173
+ text_preview_of_other_state ( self . content ( ) , false , self . state_key ( ) )
4174
+ {
4137
4175
item. label ( id ! ( content) )
4138
4176
. set_text ( cx, & text_preview. format_with ( username, false ) ) ;
4139
4177
new_drawn_status. content_drawn = true ;
@@ -4196,7 +4234,6 @@ impl SmallStateEventContent<MessageViewFromEventWrapperETI<'_>> for RoomMembersh
4196
4234
}
4197
4235
}
4198
4236
4199
-
4200
4237
/// Creates, populates, and adds a SmallStateEvent liveview widget to the given `PortalList`
4201
4238
/// with the given `item_id`.
4202
4239
///
@@ -4289,7 +4326,6 @@ fn get_profile_display_name<T: MessageViewFromEvent>(event_tl_item: &T) -> Optio
4289
4326
}
4290
4327
}
4291
4328
4292
-
4293
4329
/// Actions related to a specific message within a room timeline.
4294
4330
#[ derive( Clone , DefaultNone , Debug ) ]
4295
4331
pub enum MessageAction {
0 commit comments