Fix tray icon click focus

This commit is contained in:
Natsumi
2022-10-11 06:19:13 +13:00
parent 76700c4bc7
commit 2b75b00d49
5 changed files with 48 additions and 33 deletions

View File

@@ -348,11 +348,7 @@ namespace VRCX
{
MainForm.Instance.Invoke(new Action(() =>
{
if (MainForm.Instance.WindowState == FormWindowState.Minimized)
MainForm.Instance.WindowState = FormWindowState.Normal;
MainForm.Instance.Show();
MainForm.Instance.Activate();
MainForm.Instance.Focus_Window();
}));
}

2
MainForm.Designer.cs generated
View File

@@ -84,7 +84,7 @@ namespace VRCX
this.TrayIcon.ContextMenuStrip = this.TrayMenu;
this.TrayIcon.Text = "VRCX";
this.TrayIcon.Visible = true;
this.TrayIcon.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.TrayIcon_MouseDoubleClick);
this.TrayIcon.MouseClick += new System.Windows.Forms.MouseEventHandler(this.TrayIcon_MouseClick);
//
// MainForm
//

View File

@@ -160,19 +160,28 @@ namespace VRCX
VRCXStorage.Instance.Set("VRCX_WindowState", ((int)WindowState).ToString());
}
private void TrayIcon_MouseDoubleClick(object sender, MouseEventArgs e)
private void TrayIcon_MouseClick(object sender, MouseEventArgs e)
{
TrayMenu_Open_Click(sender, e);
if (e.Button == MouseButtons.Left)
{
Focus_Window();
}
}
private void TrayMenu_Open_Click(object sender, System.EventArgs e)
{
Focus_Window();
}
public void Focus_Window()
{
if (WindowState == FormWindowState.Minimized)
{
WindowState = FormWindowState.Normal;
}
Show();
Focus();
// Focus();
Activate();
}
private void TrayMenu_DevTools_Click(object sender, System.EventArgs e)

View File

@@ -9309,7 +9309,11 @@ speechSynthesis.getVoices();
}
this.parsePhotonLobbyIds(data.Parameters[252]);
var hasInstantiated = false;
if (this.photonLobbyCurrentUser === data.Parameters[254]) {
if (
this.photonLobbyCurrentUser === data.Parameters[254] ||
this.photonLobbyJointime.has(data.Parameters[254])
) {
// fix current user and join event firing twice
hasInstantiated = true;
}
this.photonLobbyJointime.set(data.Parameters[254], {
@@ -10070,7 +10074,10 @@ speechSynthesis.getVoices();
// skip PyPyDance and VRDancing videos
try {
var url = new URL(videoUrl);
if (url.origin === 'https://t-ne.x0.to') {
if (
url.origin === 'https://t-ne.x0.to' ||
url.origin === 'https://nextnex.com'
) {
url = new URL(url.searchParams.get('url'));
}
var id1 = url.pathname;
@@ -19857,6 +19864,7 @@ speechSynthesis.getVoices();
};
$app.methods.clearVRCXCache = function () {
API.failedGetRequests = new Map();
API.cachedUsers.forEach((ref, id) => {
if (
!this.friends.has(id) &&

View File

@@ -46,7 +46,7 @@ html
p © 2019-2022 #[a(@click="openExternalLink('https://github.com/pypy-vrc')") pypy] (mina#5656) & #[a(@click="openExternalLink('https://github.com/Natsumi-sama')") Natsumi]
p VRCX is an assistant application for provide information about manage friendship. this application uses unofficial VRChat API (VRCSDK).
p VRCX isn't endorsed by VRChat and doesn't reflect the views or opinions of VRChat or anyone officially involved in producing or managing VRChat. VRChat is trademark of VRChat Inc. VRChat © VRChat Inc.
p pypy is not responsible for any problems caused by VRCX. Use at your own risk!
p pypy or Natsumi aren't responsible for any problems caused by VRCX. Use at your own risk!
//- menu
.x-menu-container
@@ -1038,7 +1038,7 @@ html
div.options-container
span.header VRCX Updater
div.options-container-item
el-button(size="small" icon="el-icon-upload" @click="showVRCXUpdateDialog()") Check for update
el-button(size="small" icon="el-icon-upload" @click="showVRCXUpdateDialog()") Change build
div.options-container-item
span.name Auto update:
br
@@ -1047,13 +1047,25 @@ html
el-radio-button(label="Notify")
el-radio-button(label="Auto Download")
el-radio-button(label="Auto Install")
div.options-container
span.header Application
div.options-container-item
span.name Start at Windows startup
el-switch(v-model="isStartAtWindowsStartup")
div.options-container-item
span.name Start as minimized state
el-switch(v-model="isStartAsMinimizedState")
div.options-container-item
span.name Close to tray
el-switch(v-model="isCloseToTray")
div.options-container
div.options-container(style="margin-top:45px;border-top:1px solid #eee;padding-top:30px")
span.header Legal Notice
div.options-container-item
p © 2019-2022 #[a(href="https://github.com/pypy-vrc" target="_blank") pypy] (mina#5656)
p © 2019-2022 #[a(@click="openExternalLink('https://github.com/pypy-vrc')") pypy] (mina#5656) & #[a(@click="openExternalLink('https://github.com/Natsumi-sama')") Natsumi]
p VRCX is an assistant application for provide information about manage friendship. this application uses unofficial VRChat API (VRCSDK).
p VRCX isn't endorsed by VRChat and doesn't reflect the views or opinions of VRChat or anyone officially involved in producing or managing VRChat. VRChat is trademark of VRChat Inc. VRChat © VRChat Inc.
p pypy is not responsible for any problems caused by VRCX. Use at your own risk!
p pypy or Natsumi aren't responsible for any problems caused by VRCX. Use at your own risk!
div.options-container-item
el-button(@click="ossDialog = true" size="small") Open Source Software Notice
el-tab-pane(label="Appearance")
@@ -1289,28 +1301,18 @@ html
el-button(size="small" icon="el-icon-s-operation" @click="showVRChatConfig()") VRChat config.json
el-button(size="small" icon="el-icon-s-operation" @click="showLaunchOptions()") Launch Options
div.options-container
span.header Application
span.sub-header Primary password
div.options-container-item
span.name(style="min-width:236px") Encrypt password (disables auto login)
span.name(style="min-width:300px") Encrypt password (disables auto login)
el-switch(v-model="enablePrimaryPassword" @change="enablePrimaryPasswordChange" :disabled="!loginForm.savedCredentials[API.currentUser.username]")
span.sub-header VRChat Quit Fix
div.options-container-item
span.name Start at Windows startup
el-switch(v-model="isStartAtWindowsStartup")
span.name(style="min-width:300px") Kill VRChat after exiting game
el-switch(v-model="vrcQuitFix" @change="saveOpenVROption")
span.sub-header Automatically Manage Cache When Closing VRChat
div.options-container-item
span.name Start as minimized state
el-switch(v-model="isStartAsMinimizedState")
div.options-container-item
span.name Close to tray
el-switch(v-model="isCloseToTray")
div.options-container
span.sub-header VRChat Quit Fix
div.options-container-item
span.name(style="min-width:300px") Kill VRChat after exiting game
el-switch(v-model="vrcQuitFix" @change="saveOpenVROption")
span.sub-header Automatically Manage Cache When Closing VRChat
div.options-container-item
span.name(style="min-width:300px") Auto delete old versions from cache
el-switch(v-model="autoSweepVRChatCache" @change="saveOpenVROption")
span.name(style="min-width:300px") Auto delete old versions from cache
el-switch(v-model="autoSweepVRChatCache" @change="saveOpenVROption")
div.options-container
span.header Remote Avatar Database
div.options-container-item