Skip to content

Commit d29baf1

Browse files
authored
Merge pull request pop-os#598 from joshuamegnauth54/desktop-view-empty-trash
fix: Trash icons should show the trash menu
2 parents 3767a61 + 0548883 commit d29baf1

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/app.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ pub enum Action {
9696
DesktopViewOptions,
9797
EditHistory,
9898
EditLocation,
99+
EmptyTrash,
99100
ExtractHere,
100101
Gallery,
101102
HistoryNext,
@@ -155,6 +156,7 @@ impl Action {
155156
Action::EditLocation => {
156157
Message::TabMessage(entity_opt, tab::Message::EditLocationEnable)
157158
}
159+
Action::EmptyTrash => Message::TabMessage(None, tab::Message::EmptyTrash),
158160
Action::ExtractHere => Message::ExtractHere(entity_opt),
159161
Action::Gallery => Message::TabMessage(entity_opt, tab::Message::GalleryToggle),
160162
Action::HistoryNext => Message::TabMessage(entity_opt, tab::Message::GoNext),

src/menu.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ pub fn context_menu<'a>(
8989

9090
let mut selected_dir = 0;
9191
let mut selected = 0;
92+
let mut selected_trash_only = false;
9293
let mut selected_types: Vec<Mime> = vec![];
9394
tab.items_opt().map(|items| {
9495
for item in items.iter() {
@@ -97,20 +98,29 @@ pub fn context_menu<'a>(
9798
if item.metadata.is_dir() {
9899
selected_dir += 1;
99100
}
101+
if item.location_opt == Some(Location::Trash) {
102+
selected_trash_only = true;
103+
}
100104
selected_types.push(item.mime.clone());
101105
}
102106
}
103107
});
104108
selected_types.sort_unstable();
105109
selected_types.dedup();
110+
selected_trash_only = selected_trash_only && selected == 1;
106111

107112
let mut children: Vec<Element<_>> = Vec::new();
108113
match (&tab.mode, &tab.location) {
109114
(
110115
tab::Mode::App | tab::Mode::Desktop,
111116
Location::Desktop(..) | Location::Path(..) | Location::Search(..) | Location::Recents,
112117
) => {
113-
if selected > 0 {
118+
if selected_trash_only {
119+
children.push(menu_item(fl!("open"), Action::Open).into());
120+
if tab::trash_entries() > 0 {
121+
children.push(menu_item(fl!("empty-trash"), Action::EmptyTrash).into());
122+
}
123+
} else if selected > 0 {
114124
if selected_dir == 1 && selected == 1 || selected_dir == 0 {
115125
children.push(menu_item(fl!("open"), Action::Open).into());
116126
}

0 commit comments

Comments
 (0)