Merge pull request #1482 from pop-os/bug-fixes

Bug fixes
This commit is contained in:
Levi Portenier 2025-12-30 08:59:25 -07:00 committed by GitHub
commit 6d3abf431c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 540 additions and 445 deletions

944
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
[package]
name = "cosmic-files"
version = "0.1.0"
version = "1.0.0"
authors = ["Jeremy Soller <jeremy@system76.com>"]
edition = "2024"
license = "GPL-3.0-only"
@ -45,7 +45,7 @@ xdg-mime = { git = "https://github.com/ebassi/xdg-mime-rs" }
bzip2 = { version = "0.6", optional = true } #TODO: replace with pure Rust crate
flate2 = "1.1"
tar = "0.4.44"
lzma-rust2 = { version = "0.15", optional = true }
lzma-rust2 = { version = "0.15.4", optional = true }
ordermap = { version = "1.0.0", features = ["serde"] }
# Internationalization
i18n-embed = { version = "0.16", features = [
@ -56,7 +56,7 @@ i18n-embed-fl = "0.10"
rust-embed = "8"
slotmap = "1.0.7"
recently-used-xbel = { git = "https://github.com/pop-os/recently-used-xbel.git" }
zip = "6.0"
zip = "7"
uzers = "0.12.1"
md-5 = "0.10.6"
png = "0.18"
@ -65,7 +65,7 @@ num_cpus = "1.17.0"
# Completion-based IO runtime to enable io_uring / IOCP file IO support.
[dependencies.compio]
version = "0.16.0"
version = "0.17.0"
default-features = false
features = ["io", "macros", "polling", "runtime"]
@ -123,7 +123,7 @@ inherits = "release"
debug = true
[target.'cfg(unix)'.dependencies]
fork = "0.4"
fork = "0.6"
[target.'cfg(target_os = "linux")'.dependencies]
procfs = "0.18"

6
debian/changelog vendored
View file

@ -1,3 +1,9 @@
cosmic-files (1.0.0) jammy; urgency=medium
* Stable release.
-- Jeremy Soller <jeremy@system76.com> Mon, 29 Dec 2025 15:12:39 -0700
cosmic-files (0.1.0) jammy; urgency=medium
* Initial release.

View file

@ -4153,10 +4153,19 @@ impl Application for App {
tab.sort_name = sort.0;
tab.sort_direction = sort.1;
let mut tasks = Vec::with_capacity(2);
if let Some(selection_paths) = selection_paths {
tab.select_paths(selection_paths);
// Ensure selected path is scrolled to after redraw
tasks.push(Task::done(cosmic::action::app(Message::TabMessage(
Some(entity),
tab::Message::ScrollToFocused,
))));
}
return clipboard::read_data::<ClipboardPaste>().map(|p| {
tasks.push(clipboard::read_data::<ClipboardPaste>().map(|p| {
cosmic::action::app(Message::CutPaths(match p {
Some(s) => match s.kind {
ClipboardKind::Copy => Vec::new(),
@ -4164,7 +4173,9 @@ impl Application for App {
},
None => Vec::new(),
}))
});
}));
return Task::batch(tasks);
}
}
}

View file

@ -50,6 +50,8 @@ fn gio_icon_to_path(icon: &gio::Icon, size: u16) -> Option<PathBuf> {
fn items(monitor: &gio::VolumeMonitor, sizes: IconSizes) -> MounterItems {
let mut items: MounterItems = (monitor.mounts().into_iter())
.enumerate()
// Hide shadowed mounts
.filter(|(_, mount)| !mount.is_shadowed())
.map(|(i, mount)| {
let root = MountExt::root(&mount);
let is_remote = root

View file

@ -1664,6 +1664,7 @@ pub enum Message {
Resize(Rectangle),
Scroll(Viewport),
ScrollTab(f32),
ScrollToFocused,
SearchContext(Location, SearchContextWrapper),
SearchReady(bool),
SelectAll,
@ -3880,6 +3881,13 @@ impl Tab {
.into(),
));
}
Message::ScrollToFocused => {
if let Some(offset) = self.select_focus_scroll() {
commands.push(Command::Iced(
scrollable::scroll_to(self.scrollable_id.clone(), offset).into(),
));
}
}
Message::SearchContext(location, context) => {
if location == self.location {
self.search_context = context.0;