File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ use iced::widget::operation::AbsoluteOffset;
1111use iced:: window;
1212use iced:: window:: Id ;
1313use log:: info;
14+ use rayon:: iter:: IntoParallelRefIterator ;
1415use rayon:: iter:: ParallelIterator ;
1516use rayon:: slice:: ParallelSliceMut ;
1617
@@ -408,6 +409,24 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task<Message> {
408409 }
409410
410411 Message :: ClipboardHistory ( content) => {
412+ if !tile. clipboard_content . contains ( & content) {
413+ tile. clipboard_content . insert ( 0 , content) ;
414+ return Task :: none ( ) ;
415+ }
416+
417+ let new_content_vec = tile
418+ . clipboard_content
419+ . par_iter ( )
420+ . filter_map ( |x| {
421+ if * x == content {
422+ None
423+ } else {
424+ Some ( x. to_owned ( ) )
425+ }
426+ } )
427+ . collect ( ) ;
428+
429+ tile. clipboard_content = new_content_vec;
411430 tile. clipboard_content . insert ( 0 , content) ;
412431 Task :: none ( )
413432 }
You can’t perform that action at this time.
0 commit comments