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
+1 -5
View File
@@ -348,11 +348,7 @@ namespace VRCX
{ {
MainForm.Instance.Invoke(new Action(() => MainForm.Instance.Invoke(new Action(() =>
{ {
if (MainForm.Instance.WindowState == FormWindowState.Minimized) MainForm.Instance.Focus_Window();
MainForm.Instance.WindowState = FormWindowState.Normal;
MainForm.Instance.Show();
MainForm.Instance.Activate();
})); }));
} }
+1 -1
View File
@@ -84,7 +84,7 @@ namespace VRCX
this.TrayIcon.ContextMenuStrip = this.TrayMenu; this.TrayIcon.ContextMenuStrip = this.TrayMenu;
this.TrayIcon.Text = "VRCX"; this.TrayIcon.Text = "VRCX";
this.TrayIcon.Visible = true; 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 // MainForm
// //
+12 -3
View File
@@ -160,19 +160,28 @@ namespace VRCX
VRCXStorage.Instance.Set("VRCX_WindowState", ((int)WindowState).ToString()); 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) private void TrayMenu_Open_Click(object sender, System.EventArgs e)
{
Focus_Window();
}
public void Focus_Window()
{ {
if (WindowState == FormWindowState.Minimized) if (WindowState == FormWindowState.Minimized)
{ {
WindowState = FormWindowState.Normal; WindowState = FormWindowState.Normal;
} }
Show(); Show();
Focus(); // Focus();
Activate();
} }
private void TrayMenu_DevTools_Click(object sender, System.EventArgs e) private void TrayMenu_DevTools_Click(object sender, System.EventArgs e)
+10 -2
View File
@@ -9309,7 +9309,11 @@ speechSynthesis.getVoices();
} }
this.parsePhotonLobbyIds(data.Parameters[252]); this.parsePhotonLobbyIds(data.Parameters[252]);
var hasInstantiated = false; 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; hasInstantiated = true;
} }
this.photonLobbyJointime.set(data.Parameters[254], { this.photonLobbyJointime.set(data.Parameters[254], {
@@ -10070,7 +10074,10 @@ speechSynthesis.getVoices();
// skip PyPyDance and VRDancing videos // skip PyPyDance and VRDancing videos
try { try {
var url = new URL(videoUrl); 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')); url = new URL(url.searchParams.get('url'));
} }
var id1 = url.pathname; var id1 = url.pathname;
@@ -19857,6 +19864,7 @@ speechSynthesis.getVoices();
}; };
$app.methods.clearVRCXCache = function () { $app.methods.clearVRCXCache = function () {
API.failedGetRequests = new Map();
API.cachedUsers.forEach((ref, id) => { API.cachedUsers.forEach((ref, id) => {
if ( if (
!this.friends.has(id) && !this.friends.has(id) &&
+18 -16
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 © 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 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 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 //- menu
.x-menu-container .x-menu-container
@@ -1038,7 +1038,7 @@ html
div.options-container div.options-container
span.header VRCX Updater span.header VRCX Updater
div.options-container-item 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 div.options-container-item
span.name Auto update: span.name Auto update:
br br
@@ -1047,13 +1047,25 @@ html
el-radio-button(label="Notify") el-radio-button(label="Notify")
el-radio-button(label="Auto Download") el-radio-button(label="Auto Download")
el-radio-button(label="Auto Install") 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") div.options-container(style="margin-top:45px;border-top:1px solid #eee;padding-top:30px")
span.header Legal Notice span.header Legal Notice
div.options-container-item 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 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 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 div.options-container-item
el-button(@click="ossDialog = true" size="small") Open Source Software Notice el-button(@click="ossDialog = true" size="small") Open Source Software Notice
el-tab-pane(label="Appearance") el-tab-pane(label="Appearance")
@@ -1289,20 +1301,10 @@ 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="showVRChatConfig()") VRChat config.json
el-button(size="small" icon="el-icon-s-operation" @click="showLaunchOptions()") Launch Options el-button(size="small" icon="el-icon-s-operation" @click="showLaunchOptions()") Launch Options
div.options-container div.options-container
span.header Application span.sub-header Primary password
div.options-container-item 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]") el-switch(v-model="enablePrimaryPassword" @change="enablePrimaryPasswordChange" :disabled="!loginForm.savedCredentials[API.currentUser.username]")
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
span.sub-header VRChat Quit Fix span.sub-header VRChat Quit Fix
div.options-container-item div.options-container-item
span.name(style="min-width:300px") Kill VRChat after exiting game span.name(style="min-width:300px") Kill VRChat after exiting game