@@ -126436,8 +126436,14 @@ class TFile {
126436126436 this.fAcceptRanges = false;
126437126437 }
126438126438
126439- const pos = Math.max(this.fURL.lastIndexOf('/'), this.fURL.lastIndexOf('\\'));
126440- this.fFileName = pos >= 0 ? this.fURL.slice(pos + 1) : this.fURL;
126439+ this.assignFileName(this.fURL);
126440+ }
126441+
126442+ assignFileName(url) {
126443+ if (isStr(url)) {
126444+ const pos = Math.max(url.lastIndexOf('/'), url.lastIndexOf('\\'));
126445+ this.fFileName = (pos >= 0) && (pos < url.length - 2) ? url.slice(pos + 1) : url;
126446+ }
126441126447 }
126442126448
126443126449 /** @summary Set timeout for File instance
@@ -127093,8 +127099,10 @@ class TFile {
127093127099 key = buf3.readTKey();
127094127100
127095127101 this.fTitle = key.fTitle;
127096- if (this.fURL === kTmpFileName)
127097- this.fURL = this.fFileName = key.fName;
127102+ if (this.fURL === kTmpFileName) {
127103+ this.fURL = this.fFullURL = key.fName;
127104+ this.assignFileName(key.fName);
127105+ }
127098127106
127099127107 buf3.locate(this.fNbytesName);
127100127108
@@ -127374,9 +127382,8 @@ class TNodejsFile extends TFile {
127374127382 super(null);
127375127383 this.fUseStampPar = false;
127376127384 this.fEND = 0;
127377- this.fFullURL = filename;
127378- this.fURL = filename;
127379- this.fFileName = filename;
127385+ this.fFullURL = this.fURL = filename;
127386+ this.assignFileName(filename);
127380127387 }
127381127388
127382127389 /** @summary Open file in node.js
@@ -127481,12 +127488,8 @@ class TProxyFile extends TFile {
127481127488 if (!res)
127482127489 return false;
127483127490 this.fEND = this.proxy.getFileSize();
127484- this.fFullURL = this.fURL = this.fFileName = this.proxy.getFileName();
127485- if (isStr(this.fFileName)) {
127486- const p = this.fFileName.lastIndexOf('/');
127487- if ((p > 0) && (p < this.fFileName.length - 4))
127488- this.fFileName = this.fFileName.slice(p + 1);
127489- }
127491+ this.fFullURL = this.fURL = this.proxy.getFileName();
127492+ this.assignFileName(this.fURL);
127490127493 return this.readKeys();
127491127494 });
127492127495 }
@@ -170275,6 +170278,7 @@ class HierarchyPainter extends BasePainter {
170275170278 const title_elem = this.brlayout.setBrowserTitle(this.top_info || (this.is_online ? 'ROOT online server' : 'Read a ROOT file'));
170276170279 title_elem?.on('contextmenu', evnt => {
170277170280 evnt.preventDefault();
170281+ evnt.stopPropagation();
170278170282 createMenu(evnt).then(menu => {
170279170283 this.fillSettingsMenu(menu, true);
170280170284 menu.show();
0 commit comments