Terminal-Start übersteht nicht ladbares Dock-Icon (z. B. TCC-geschützter Pfad) — Meldung statt Panic
This commit is contained in:
@@ -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));
|
||||||
|
|||||||
Reference in New Issue
Block a user