Upload via GUI (39 Dateien)
This commit is contained in:
33
src/main.js
33
src/main.js
@@ -90,13 +90,34 @@ let mainWindow = null;
|
||||
const hatEinzelSperre = app.requestSingleInstanceLock();
|
||||
if (!hatEinzelSperre) app.quit();
|
||||
|
||||
/*
|
||||
* Instanz-Kennung aus den Startargumenten lesen.
|
||||
*
|
||||
* Wichtig: Bei einem zweiten Start sortiert Chromium die Argumente um –
|
||||
* alle Schalter wandern nach vorn, alles andere ans Ende. Aus
|
||||
* --launch 1.21.11
|
||||
* wird dabei
|
||||
* --launch --allow-file-access-from-files <pfad> 1.21.11
|
||||
* und die Kennung steht nicht mehr hinter ihrem Schalter. Deshalb wird die
|
||||
* Form "--launch=<kennung>" verwendet: die bleibt ein einziges Argument.
|
||||
*/
|
||||
function instanzAusArgumenten(argv) {
|
||||
const args = argv || [];
|
||||
for (let i = 0; i < args.length; i++) {
|
||||
const a = String(args[i]);
|
||||
if (a === '--launch' && args[i + 1]) return String(args[i + 1]);
|
||||
const args = (argv || []).map(String);
|
||||
|
||||
for (const a of args) {
|
||||
if (a.startsWith('--launch=')) return a.slice('--launch='.length);
|
||||
}
|
||||
|
||||
// Notnagel für Verknüpfungen aus früheren Fassungen (und den Aufruf von
|
||||
// Hand): Steht "--launch" allein da, ist die Kennung durch das Umsortieren
|
||||
// ans Ende gerutscht – das letzte Argument, das kein Schalter ist.
|
||||
if (args.includes('--launch')) {
|
||||
const i = args.indexOf('--launch');
|
||||
if (args[i + 1] && !args[i + 1].startsWith('-')) return args[i + 1];
|
||||
for (let j = args.length - 1; j > 0; j--) {
|
||||
if (!args[j].startsWith('-')) return args[j];
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -827,7 +848,9 @@ ipcMain.handle('instances:shortcut', (_e, id) => {
|
||||
const ziel = verknuepfungsZiel();
|
||||
const ok = shell.writeShortcutLink(datei, fs.existsSync(datei) ? 'replace' : 'create', {
|
||||
target: ziel,
|
||||
args: `--launch "${id}"`,
|
||||
// Gleichheitsform, damit die Kennung beim Umsortieren durch Chromium
|
||||
// an ihrem Schalter bleibt (siehe instanzAusArgumenten)
|
||||
args: `--launch="${id}"`,
|
||||
cwd: path.dirname(ziel),
|
||||
description: 'AeroMC – ' + inst.name,
|
||||
icon: ziel,
|
||||
|
||||
Reference in New Issue
Block a user