Fix path checking for FileWatcher for virtual workspace projects (#16958)
# Objective Fixes #16879 ## Solution Moved the construction of the root path of the assets folder out of `FileWatcher::new()` and into `source.rs`, as the path is checked there with `path.exists()` and fails in certain configurations eg., virtual workspaces. ## Testing Applied fix to a private fork and tested against both standard project setups and virtual workspaces. Works without issue on both. Have tested under macOS and Arch Linux. --------- Co-authored-by: JP Stringham <jp@bloomdigital.to> Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
This commit is contained in:
parent
e6256e77cd
commit
f8bd5144a5
@ -26,13 +26,13 @@ pub struct FileWatcher {
|
|||||||
|
|
||||||
impl FileWatcher {
|
impl FileWatcher {
|
||||||
pub fn new(
|
pub fn new(
|
||||||
root: PathBuf,
|
path: PathBuf,
|
||||||
sender: Sender<AssetSourceEvent>,
|
sender: Sender<AssetSourceEvent>,
|
||||||
debounce_wait_time: Duration,
|
debounce_wait_time: Duration,
|
||||||
) -> Result<Self, notify::Error> {
|
) -> Result<Self, notify::Error> {
|
||||||
let root = normalize_path(super::get_base_path().join(root).as_path());
|
let root = normalize_path(&path);
|
||||||
let watcher = new_asset_event_debouncer(
|
let watcher = new_asset_event_debouncer(
|
||||||
root.clone(),
|
path.clone(),
|
||||||
debounce_wait_time,
|
debounce_wait_time,
|
||||||
FileEventHandler {
|
FileEventHandler {
|
||||||
root,
|
root,
|
||||||
|
@ -531,7 +531,7 @@ impl AssetSource {
|
|||||||
not(target_os = "android")
|
not(target_os = "android")
|
||||||
))]
|
))]
|
||||||
{
|
{
|
||||||
let path = std::path::PathBuf::from(path.clone());
|
let path = super::file::get_base_path().join(path.clone());
|
||||||
if path.exists() {
|
if path.exists() {
|
||||||
Some(Box::new(
|
Some(Box::new(
|
||||||
super::file::FileWatcher::new(
|
super::file::FileWatcher::new(
|
||||||
|
Loading…
Reference in New Issue
Block a user