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