Skip to content

Commit ae8a8e9

Browse files
committed
reduce number of clipboard history items by reordering them
1 parent b9bef02 commit ae8a8e9

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

src/app/tile/update.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ use iced::widget::operation::AbsoluteOffset;
1111
use iced::window;
1212
use iced::window::Id;
1313
use log::info;
14+
use rayon::iter::IntoParallelRefIterator;
1415
use rayon::iter::ParallelIterator;
1516
use 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
}

0 commit comments

Comments
 (0)