From 69fa8b338cd5f3513bc6a1f3cf48dbdab54f4684 Mon Sep 17 00:00:00 2001 From: "marcus.hinz" Date: Sun, 5 Jul 2026 12:47:34 +0200 Subject: [PATCH] =?UTF-8?q?Terminal-Start=20=C3=BCbersteht=20nicht=20ladba?= =?UTF-8?q?res=20Dock-Icon=20(z.=20B.=20TCC-gesch=C3=BCtzter=20Pfad)=20?= =?UTF-8?q?=E2=80=94=20Meldung=20statt=20Panic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/src/terminal.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src-tauri/src/terminal.rs b/src-tauri/src/terminal.rs index b4dd5c3..a436b66 100644 --- a/src-tauri/src/terminal.rs +++ b/src-tauri/src/terminal.rs @@ -54,8 +54,13 @@ pub fn set_dock_icon(path: &str) { use objc2_foundation::NSString; 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)) - .unwrap_or_else(|| panic!("Dock-Icon nicht ladbar: {path}")); + // Nicht ladbar (Datei weg, TCC-geschützter Ordner wie ~/Downloads): Terminal + // 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 { NSApplication::sharedApplication(mtm).setApplicationIconImage(Some(&img));