fix: fixed an issue if "Always on top" is enabled, the dialog is displayed below the window

- fix #1379
This commit is contained in:
JellyBrick
2023-11-08 16:35:19 +09:00
parent f560b62de0
commit 7bdb46e161
3 changed files with 16 additions and 7 deletions

View File

@ -554,7 +554,15 @@ app.on('ready', async () => {
message: 'A new version is available',
detail: `A new version is available and can be downloaded at ${downloadLink}`,
};
dialog.showMessageBox(dialogOptions).then((dialogOutput) => {
let dialogPromise: Promise<Electron.MessageBoxReturnValue>;
if (mainWindow) {
dialogPromise = dialog.showMessageBox(mainWindow, dialogOptions);
} else {
dialogPromise = dialog.showMessageBox(dialogOptions);
}
dialogPromise.then((dialogOutput) => {
switch (dialogOutput.response) {
// Download
case 1: {

View File

@ -68,8 +68,9 @@ const sendError = (error: Error, source?: string) => {
const cause = error.cause ? `\n\n${String(error.cause)}` : '';
const message = `${error.toString()}${songNameMessage}${cause}`;
console.error(message, error, error?.stack);
dialog.showMessageBox({
console.error(message);
console.trace(error);
dialog.showMessageBox(win, {
type: 'info',
buttons: ['OK'],
title: 'Error in download!',
@ -527,7 +528,7 @@ export async function downloadPlaylist(givenUrl?: string | URL) {
mkdirSync(playlistFolder, { recursive: true });
}
dialog.showMessageBox({
dialog.showMessageBox(win, {
type: 'info',
buttons: ['OK'],
title: 'Started Download',

View File

@ -1,7 +1,7 @@
import { ipcMain, dialog } from 'electron';
import { ipcMain, dialog, BrowserWindow } from 'electron';
export default () => {
ipcMain.handle('qualityChanger', async (_, qualityLabels: string[], currentIndex: number) => await dialog.showMessageBox({
export default (win: BrowserWindow) => {
ipcMain.handle('qualityChanger', async (_, qualityLabels: string[], currentIndex: number) => await dialog.showMessageBox(win, {
type: 'question',
buttons: qualityLabels,
defaultId: currentIndex,