diff --git a/Dotnet/AppApi/Folders.cs b/Dotnet/AppApi/Folders.cs
index 74a7683f..117fa22c 100644
--- a/Dotnet/AppApi/Folders.cs
+++ b/Dotnet/AppApi/Folders.cs
@@ -157,6 +157,7 @@ namespace VRCX
/// Whether the specified path is a folder or not. Defaults to false.
public void OpenFolderAndSelectItem(string path, bool isFolder = false)
{
+ path = Path.GetFullPath(path);
// I don't think it's quite meant for it, but SHOpenFolderAndSelectItems can open folders by passing the folder path as the item to select, as a child to itself, somehow. So we'll check to see if 'path' is a folder as well.
if (!File.Exists(path) && !Directory.Exists(path))
return;
diff --git a/Dotnet/IPC/IPCClient.cs b/Dotnet/IPC/IPCClient.cs
index 1de5b611..bbec9dc1 100644
--- a/Dotnet/IPC/IPCClient.cs
+++ b/Dotnet/IPC/IPCClient.cs
@@ -84,8 +84,8 @@ namespace VRCX
{
if (string.IsNullOrEmpty(packet))
continue;
-
- MainForm.Instance.Browser.ExecuteScriptAsync("$app.ipcEvent", packet);
+ if (MainForm.Instance?.Browser != null && !MainForm.Instance.Browser.IsLoading && MainForm.Instance.Browser.CanExecuteJavascriptInMainFrame)
+ MainForm.Instance.Browser.ExecuteScriptAsync("$app.ipcEvent", packet);
}
_currentPacket = string.Empty;
diff --git a/html/src/app.js b/html/src/app.js
index ff7cce67..e1a5b1cf 100644
--- a/html/src/app.js
+++ b/html/src/app.js
@@ -1086,7 +1086,7 @@ speechSynthesis.getVoices();
'{{ $t("dialog.user.info.instance_game_version") }} {{ gameServerVersion }}' +
'{{ $t("dialog.user.info.instance_queuing_enabled") }}' +
'{{ $t("dialog.user.info.instance_users") }}' +
- '' +
+ '' +
'' +
'' +
'' +
@@ -22690,7 +22690,7 @@ speechSynthesis.getVoices();
},
cache_directory: {
name: $t('dialog.config_json.cache_directory'),
- default: '%AppData%\\..\\LocalLow\\VRChat\\vrchat'
+ default: '%AppData%\\..\\LocalLow\\VRChat\\VRChat'
},
picture_output_folder: {
name: $t('dialog.config_json.picture_directory'),
diff --git a/html/src/index.pug b/html/src/index.pug
index a7fc8719..1389f0ac 100644
--- a/html/src/index.pug
+++ b/html/src/index.pug
@@ -2748,12 +2748,14 @@ html
div(v-if="screenshotMetadataDialog.visible" v-loading="screenshotMetadataDialog.loading" @dragover.prevent @dragenter.prevent @drop="handleDrop" style="-webkit-app-region: drag")
span(style="margin-left:5px;color:#909399;font-family:monospace") {{ $t('dialog.screenshot_metadata.drag') }}
br
+ br
el-button(size="small" icon="el-icon-folder-opened" @click="AppApi.OpenScreenshotFileDialog()") {{ $t('dialog.screenshot_metadata.browse') }}
el-button(size="small" icon="el-icon-picture-outline" @click="getAndDisplayLastScreenshot()") {{ $t('dialog.screenshot_metadata.last_screenshot') }}
el-button(size="small" icon="el-icon-copy-document" @click="copyImageToClipboard(screenshotMetadataDialog.metadata.filePath)") {{ $t('dialog.screenshot_metadata.copy_image') }}
el-button(size="small" icon="el-icon-folder" @click="openImageFolder(screenshotMetadataDialog.metadata.filePath)") {{ $t('dialog.screenshot_metadata.open_folder') }}
el-button(v-if="API.currentUser.$isVRCPlus && screenshotMetadataDialog.metadata.filePath" size="small" icon="el-icon-upload2" @click="uploadScreenshotToGallery") {{ $t('dialog.screenshot_metadata.upload') }}
br
+ br
//- Search bar input
el-input(v-model="screenshotMetadataDialog.search" size="small" placeholder="Search" clearable style="width:200px" @input="screenshotMetadataSearch")
//- Search index/total label