Terminal-Start übersteht nicht ladbares Dock-Icon (z. B. TCC-geschützter Pfad) — Meldung statt Panic

This commit is contained in:
marcus.hinz
2026-07-05 12:47:34 +02:00
parent be6c56d7eb
commit 69fa8b338c
+7 -2
View File
@@ -54,8 +54,13 @@ pub fn set_dock_icon(path: &str) {
use objc2_foundation::NSString; use objc2_foundation::NSString;
let mtm = MainThreadMarker::new().expect("set_dock_icon läuft nicht auf dem Main-Thread"); let mtm = MainThreadMarker::new().expect("set_dock_icon läuft nicht auf dem Main-Thread");
let img = NSImage::initWithContentsOfFile(NSImage::alloc(), &NSString::from_str(path)) // Nicht ladbar (Datei weg, TCC-geschützter Ordner wie ~/Downloads): Terminal
.unwrap_or_else(|| panic!("Dock-Icon nicht ladbar: {path}")); // ohne eigenes Dock-Icon starten statt den Prozess zu beenden.
let Some(img) = NSImage::initWithContentsOfFile(NSImage::alloc(), &NSString::from_str(path))
else {
eprintln!("Dock-Icon nicht ladbar, Terminal startet ohne: {path}");
return;
};
// unsafe laut objc2-Signatur; das NSImage stammt aus einer Datei und ist gültig. // unsafe laut objc2-Signatur; das NSImage stammt aus einer Datei und ist gültig.
unsafe { unsafe {
NSApplication::sharedApplication(mtm).setApplicationIconImage(Some(&img)); NSApplication::sharedApplication(mtm).setApplicationIconImage(Some(&img));