@SomeoneToIgnore This code should 100% work for future Zed users, but for current Zed users, Zed's internal list of recents may not be synced w/ macOS' Recent Documents at first. If needed this can be fixed by calling `cx.refresh_recent_documents` on startup, but that feels a bit unnecessary. Release Notes: - Fixes behavior of Recent Documents list on macOS
This commit is contained in:
@@ -764,12 +764,8 @@ impl Platform for MacPlatform {
|
||||
}
|
||||
}
|
||||
|
||||
fn add_recent_documents(&self, paths: &[PathBuf]) {
|
||||
for path in paths {
|
||||
let Some(path_str) = path.to_str() else {
|
||||
log::error!("Not adding to recent documents a non-unicode path: {path:?}");
|
||||
continue;
|
||||
};
|
||||
fn add_recent_document(&self, path: &Path) {
|
||||
if let Some(path_str) = path.to_str() {
|
||||
unsafe {
|
||||
let document_controller: id =
|
||||
msg_send![class!(NSDocumentController), sharedDocumentController];
|
||||
@@ -779,14 +775,6 @@ impl Platform for MacPlatform {
|
||||
}
|
||||
}
|
||||
|
||||
fn clear_recent_documents(&self) {
|
||||
unsafe {
|
||||
let document_controller: id =
|
||||
msg_send![class!(NSDocumentController), sharedDocumentController];
|
||||
let _: () = msg_send![document_controller, clearRecentDocuments:nil];
|
||||
}
|
||||
}
|
||||
|
||||
fn local_timezone(&self) -> UtcOffset {
|
||||
unsafe {
|
||||
let local_timezone: id = msg_send![class!(NSTimeZone), localTimeZone];
|
||||
|
||||
@@ -9,7 +9,7 @@ use futures::channel::oneshot;
|
||||
use parking_lot::Mutex;
|
||||
use std::{
|
||||
cell::RefCell,
|
||||
path::PathBuf,
|
||||
path::{Path, PathBuf},
|
||||
rc::{Rc, Weak},
|
||||
sync::Arc,
|
||||
};
|
||||
@@ -239,9 +239,7 @@ impl Platform for TestPlatform {
|
||||
|
||||
fn set_menus(&self, _menus: Vec<crate::Menu>, _keymap: &Keymap) {}
|
||||
|
||||
fn add_recent_documents(&self, _paths: &[PathBuf]) {}
|
||||
|
||||
fn clear_recent_documents(&self) {}
|
||||
fn add_recent_document(&self, _paths: &Path) {}
|
||||
|
||||
fn on_app_menu_action(&self, _callback: Box<dyn FnMut(&dyn crate::Action)>) {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user