mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
fixes
This commit is contained in:
parent
42017fde5f
commit
d1bb62c40e
@ -1,8 +1,6 @@
|
|||||||
import server from "../../services/server.js";
|
import server from "../../services/server.js";
|
||||||
import utils from "../../services/utils.js";
|
import utils from "../../services/utils.js";
|
||||||
import cssLoader from "../../services/css_loader.js";
|
import cssLoader from "../../services/css_loader.js";
|
||||||
import zoomService from "../../services/zoom.js";
|
|
||||||
import optionsService from "../../services/options.js";
|
|
||||||
import appContext from "../../services/app_context.js";
|
import appContext from "../../services/app_context.js";
|
||||||
|
|
||||||
const TPL = `
|
const TPL = `
|
||||||
|
@ -34,7 +34,7 @@ import utils from "./utils.js";
|
|||||||
import treeService from "./tree.js";
|
import treeService from "./tree.js";
|
||||||
import SidePaneContainer from "../widgets/side_pane_container.js";
|
import SidePaneContainer from "../widgets/side_pane_container.js";
|
||||||
import ZoomService from "./zoom.js";
|
import ZoomService from "./zoom.js";
|
||||||
import SidebarToggle from "../widgets/sidebar_toggle.js";
|
import SidepaneToggles from "../widgets/sidebar_toggle.js";
|
||||||
|
|
||||||
class AppContext {
|
class AppContext {
|
||||||
constructor() {
|
constructor() {
|
||||||
@ -188,7 +188,7 @@ class AppContext {
|
|||||||
|
|
||||||
$centerPane.after(rightPaneContainer.render());
|
$centerPane.after(rightPaneContainer.render());
|
||||||
|
|
||||||
const sidebarToggleWidget = new SidebarToggle(this);
|
const sidebarToggleWidget = new SidepaneToggles(this);
|
||||||
|
|
||||||
$centerPane.after(sidebarToggleWidget.render());
|
$centerPane.after(sidebarToggleWidget.render());
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import utils from "./utils.js";
|
import utils from "./utils.js";
|
||||||
import zoomService from "./zoom.js";
|
|
||||||
import treeService from "./tree.js";
|
import treeService from "./tree.js";
|
||||||
import dateNoteService from "./date_notes.js";
|
import dateNoteService from "./date_notes.js";
|
||||||
import hoistedNoteService from "./hoisted_note.js";
|
import hoistedNoteService from "./hoisted_note.js";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
export class LoadResults {
|
export default class LoadResults {
|
||||||
constructor(treeCache) {
|
constructor(treeCache) {
|
||||||
this.treeCache = treeCache;
|
this.treeCache = treeCache;
|
||||||
|
|
||||||
|
@ -2,10 +2,7 @@ import Branch from "../entities/branch.js";
|
|||||||
import NoteShort from "../entities/note_short.js";
|
import NoteShort from "../entities/note_short.js";
|
||||||
import Attribute from "../entities/attribute.js";
|
import Attribute from "../entities/attribute.js";
|
||||||
import server from "./server.js";
|
import server from "./server.js";
|
||||||
import {LoadResults} from "./load_results.js";
|
|
||||||
import NoteComplement from "../entities/note_complement.js";
|
import NoteComplement from "../entities/note_complement.js";
|
||||||
import appContext from "./app_context.js";
|
|
||||||
import options from "./options.js";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TreeCache keeps a read only cache of note tree structure in frontend's memory.
|
* TreeCache keeps a read only cache of note tree structure in frontend's memory.
|
||||||
@ -229,137 +226,6 @@ class TreeCache {
|
|||||||
|
|
||||||
return await this.noteComplementPromises[noteId];
|
return await this.noteComplementPromises[noteId];
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME does not actually belong here
|
|
||||||
async processSyncRows(syncRows) {
|
|
||||||
const loadResults = new LoadResults(this);
|
|
||||||
|
|
||||||
syncRows.filter(sync => sync.entityName === 'notes').forEach(sync => {
|
|
||||||
const note = this.notes[sync.entityId];
|
|
||||||
|
|
||||||
if (note) {
|
|
||||||
note.update(sync.entity);
|
|
||||||
loadResults.addNote(sync.entityId, sync.sourceId);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
syncRows.filter(sync => sync.entityName === 'branches').forEach(sync => {
|
|
||||||
let branch = this.branches[sync.entityId];
|
|
||||||
const childNote = this.notes[sync.entity.noteId];
|
|
||||||
const parentNote = this.notes[sync.entity.parentNoteId];
|
|
||||||
|
|
||||||
if (branch) {
|
|
||||||
if (sync.entity.isDeleted) {
|
|
||||||
if (childNote) {
|
|
||||||
childNote.parents = childNote.parents.filter(parentNoteId => parentNoteId !== sync.entity.parentNoteId);
|
|
||||||
delete childNote.parentToBranch[sync.entity.parentNoteId];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (parentNote) {
|
|
||||||
parentNote.children = parentNote.children.filter(childNoteId => childNoteId !== sync.entity.noteId);
|
|
||||||
delete parentNote.childToBranch[sync.entity.noteId];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
branch.update(sync.entity);
|
|
||||||
loadResults.addBranch(sync.entityId, sync.sourceId);
|
|
||||||
|
|
||||||
if (childNote) {
|
|
||||||
childNote.addParent(branch.parentNoteId, branch.branchId);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (parentNote) {
|
|
||||||
parentNote.addChild(branch.noteId, branch.branchId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!sync.entity.isDeleted) {
|
|
||||||
if (childNote || parentNote) {
|
|
||||||
branch = new Branch(this, sync.entity);
|
|
||||||
this.branches[branch.branchId] = branch;
|
|
||||||
|
|
||||||
loadResults.addBranch(sync.entityId, sync.sourceId);
|
|
||||||
|
|
||||||
if (childNote) {
|
|
||||||
childNote.addParent(branch.parentNoteId, branch.branchId);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (parentNote) {
|
|
||||||
parentNote.addChild(branch.noteId, branch.branchId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
syncRows.filter(sync => sync.entityName === 'note_reordering').forEach(sync => {
|
|
||||||
for (const branchId in sync.positions) {
|
|
||||||
const branch = this.branches[branchId];
|
|
||||||
|
|
||||||
if (branch) {
|
|
||||||
branch.notePosition = sync.positions[branchId];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
loadResults.addNoteReordering(sync.entityId, sync.sourceId);
|
|
||||||
});
|
|
||||||
|
|
||||||
// missing reloading the relation target note
|
|
||||||
syncRows.filter(sync => sync.entityName === 'attributes').forEach(sync => {
|
|
||||||
let attribute = this.attributes[sync.entityId];
|
|
||||||
const sourceNote = this.notes[sync.entity.noteId];
|
|
||||||
const targetNote = sync.entity.type === 'relation' && this.notes[sync.entity.value];
|
|
||||||
|
|
||||||
if (attribute) {
|
|
||||||
attribute.update(sync.entity);
|
|
||||||
loadResults.addAttribute(sync.entityId, sync.sourceId);
|
|
||||||
|
|
||||||
if (sync.entity.isDeleted) {
|
|
||||||
if (sourceNote) {
|
|
||||||
sourceNote.attributes = sourceNote.attributes.filter(attributeId => attributeId !== attribute.attributeId);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (targetNote) {
|
|
||||||
targetNote.targetRelations = targetNote.targetRelations.filter(attributeId => attributeId !== attribute.value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!sync.entity.isDeleted) {
|
|
||||||
if (sourceNote || targetNote) {
|
|
||||||
attribute = new Attribute(this, sync.entity);
|
|
||||||
|
|
||||||
this.attributes[attribute.attributeId] = attribute;
|
|
||||||
|
|
||||||
loadResults.addAttribute(sync.entityId, sync.sourceId);
|
|
||||||
|
|
||||||
if (sourceNote && !sourceNote.attributes.includes(attribute.attributeId)) {
|
|
||||||
sourceNote.attributes.push(attribute.attributeId);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (targetNote && !targetNote.attributes.includes(attribute.attributeId)) {
|
|
||||||
targetNote.attributes.push(attribute.attributeId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
syncRows.filter(sync => sync.entityName === 'note_contents').forEach(sync => {
|
|
||||||
delete this.noteComplementPromises[sync.entityId];
|
|
||||||
|
|
||||||
loadResults.addNoteContent(sync.entityId, sync.sourceId);
|
|
||||||
});
|
|
||||||
|
|
||||||
syncRows.filter(sync => sync.entityName === 'note_revisions').forEach(sync => {
|
|
||||||
loadResults.addNoteRevision(sync.entityId, sync.noteId, sync.sourceId);
|
|
||||||
});
|
|
||||||
|
|
||||||
syncRows.filter(sync => sync.entityName === 'options').forEach(sync => {
|
|
||||||
options.set(sync.entity.name, sync.entity.value);
|
|
||||||
|
|
||||||
loadResults.addOption(sync.entity.name);
|
|
||||||
});
|
|
||||||
|
|
||||||
appContext.trigger('entitiesReloaded', {loadResults});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const treeCache = new TreeCache();
|
const treeCache = new TreeCache();
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
import utils from './utils.js';
|
import utils from './utils.js';
|
||||||
import toastService from "./toast.js";
|
import toastService from "./toast.js";
|
||||||
import server from "./server.js";
|
import server from "./server.js";
|
||||||
|
import LoadResults from "./load_results.js";
|
||||||
|
import Branch from "../entities/branch.js";
|
||||||
|
import Attribute from "../entities/attribute.js";
|
||||||
|
import options from "./options.js";
|
||||||
|
|
||||||
const $outstandingSyncsCount = $("#outstanding-syncs-count");
|
const $outstandingSyncsCount = $("#outstanding-syncs-count");
|
||||||
|
|
||||||
@ -125,9 +129,7 @@ async function consumeSyncData() {
|
|||||||
syncDataQueue = [];
|
syncDataQueue = [];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const treeCache = (await import("./tree_cache.js")).default;
|
await processSyncRows(allSyncData);
|
||||||
|
|
||||||
await treeCache.processSyncRows(allSyncData);
|
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
logError(`Encountered error ${e.message}: ${e.stack}, reloading frontend.`);
|
logError(`Encountered error ${e.message}: ${e.stack}, reloading frontend.`);
|
||||||
@ -197,6 +199,137 @@ subscribeToMessages(message => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
async function processSyncRows(syncRows) {
|
||||||
|
const loadResults = new LoadResults(this);
|
||||||
|
|
||||||
|
syncRows.filter(sync => sync.entityName === 'notes').forEach(sync => {
|
||||||
|
const note = this.notes[sync.entityId];
|
||||||
|
|
||||||
|
if (note) {
|
||||||
|
note.update(sync.entity);
|
||||||
|
loadResults.addNote(sync.entityId, sync.sourceId);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
syncRows.filter(sync => sync.entityName === 'branches').forEach(sync => {
|
||||||
|
let branch = this.branches[sync.entityId];
|
||||||
|
const childNote = this.notes[sync.entity.noteId];
|
||||||
|
const parentNote = this.notes[sync.entity.parentNoteId];
|
||||||
|
|
||||||
|
if (branch) {
|
||||||
|
if (sync.entity.isDeleted) {
|
||||||
|
if (childNote) {
|
||||||
|
childNote.parents = childNote.parents.filter(parentNoteId => parentNoteId !== sync.entity.parentNoteId);
|
||||||
|
delete childNote.parentToBranch[sync.entity.parentNoteId];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parentNote) {
|
||||||
|
parentNote.children = parentNote.children.filter(childNoteId => childNoteId !== sync.entity.noteId);
|
||||||
|
delete parentNote.childToBranch[sync.entity.noteId];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
branch.update(sync.entity);
|
||||||
|
loadResults.addBranch(sync.entityId, sync.sourceId);
|
||||||
|
|
||||||
|
if (childNote) {
|
||||||
|
childNote.addParent(branch.parentNoteId, branch.branchId);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parentNote) {
|
||||||
|
parentNote.addChild(branch.noteId, branch.branchId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!sync.entity.isDeleted) {
|
||||||
|
if (childNote || parentNote) {
|
||||||
|
branch = new Branch(this, sync.entity);
|
||||||
|
this.branches[branch.branchId] = branch;
|
||||||
|
|
||||||
|
loadResults.addBranch(sync.entityId, sync.sourceId);
|
||||||
|
|
||||||
|
if (childNote) {
|
||||||
|
childNote.addParent(branch.parentNoteId, branch.branchId);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parentNote) {
|
||||||
|
parentNote.addChild(branch.noteId, branch.branchId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
syncRows.filter(sync => sync.entityName === 'note_reordering').forEach(sync => {
|
||||||
|
for (const branchId in sync.positions) {
|
||||||
|
const branch = this.branches[branchId];
|
||||||
|
|
||||||
|
if (branch) {
|
||||||
|
branch.notePosition = sync.positions[branchId];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
loadResults.addNoteReordering(sync.entityId, sync.sourceId);
|
||||||
|
});
|
||||||
|
|
||||||
|
// missing reloading the relation target note
|
||||||
|
syncRows.filter(sync => sync.entityName === 'attributes').forEach(sync => {
|
||||||
|
let attribute = this.attributes[sync.entityId];
|
||||||
|
const sourceNote = this.notes[sync.entity.noteId];
|
||||||
|
const targetNote = sync.entity.type === 'relation' && this.notes[sync.entity.value];
|
||||||
|
|
||||||
|
if (attribute) {
|
||||||
|
attribute.update(sync.entity);
|
||||||
|
loadResults.addAttribute(sync.entityId, sync.sourceId);
|
||||||
|
|
||||||
|
if (sync.entity.isDeleted) {
|
||||||
|
if (sourceNote) {
|
||||||
|
sourceNote.attributes = sourceNote.attributes.filter(attributeId => attributeId !== attribute.attributeId);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (targetNote) {
|
||||||
|
targetNote.targetRelations = targetNote.targetRelations.filter(attributeId => attributeId !== attribute.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!sync.entity.isDeleted) {
|
||||||
|
if (sourceNote || targetNote) {
|
||||||
|
attribute = new Attribute(this, sync.entity);
|
||||||
|
|
||||||
|
this.attributes[attribute.attributeId] = attribute;
|
||||||
|
|
||||||
|
loadResults.addAttribute(sync.entityId, sync.sourceId);
|
||||||
|
|
||||||
|
if (sourceNote && !sourceNote.attributes.includes(attribute.attributeId)) {
|
||||||
|
sourceNote.attributes.push(attribute.attributeId);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (targetNote && !targetNote.attributes.includes(attribute.attributeId)) {
|
||||||
|
targetNote.attributes.push(attribute.attributeId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
syncRows.filter(sync => sync.entityName === 'note_contents').forEach(sync => {
|
||||||
|
delete this.noteComplementPromises[sync.entityId];
|
||||||
|
|
||||||
|
loadResults.addNoteContent(sync.entityId, sync.sourceId);
|
||||||
|
});
|
||||||
|
|
||||||
|
syncRows.filter(sync => sync.entityName === 'note_revisions').forEach(sync => {
|
||||||
|
loadResults.addNoteRevision(sync.entityId, sync.noteId, sync.sourceId);
|
||||||
|
});
|
||||||
|
|
||||||
|
syncRows.filter(sync => sync.entityName === 'options').forEach(sync => {
|
||||||
|
options.set(sync.entity.name, sync.entity.value);
|
||||||
|
|
||||||
|
loadResults.addOption(sync.entity.name);
|
||||||
|
});
|
||||||
|
|
||||||
|
const appContext = (await import("./app_context.js")).default;
|
||||||
|
appContext.trigger('entitiesReloaded', {loadResults});
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
logError,
|
logError,
|
||||||
subscribeToMessages,
|
subscribeToMessages,
|
||||||
|
@ -18,11 +18,12 @@ const TPL = `
|
|||||||
|
|
||||||
export default class HistoryNavigationWidget extends BasicWidget {
|
export default class HistoryNavigationWidget extends BasicWidget {
|
||||||
doRender() {
|
doRender() {
|
||||||
if (!utils.isElectron()) {
|
if (utils.isElectron()) {
|
||||||
return;
|
this.$widget = $(TPL);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.$widget = $("<div>");
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$widget = $(TPL);
|
|
||||||
|
|
||||||
return this.$widget;
|
return this.$widget;
|
||||||
}
|
}
|
||||||
|
@ -3,16 +3,16 @@ import splitService from "../services/split.js";
|
|||||||
import BasicWidget from "./basic_widget.js";
|
import BasicWidget from "./basic_widget.js";
|
||||||
|
|
||||||
const TPL = `
|
const TPL = `
|
||||||
<div>
|
<div class="hide-in-zen-mode">
|
||||||
<style>
|
<style>
|
||||||
#hide-right-pane-button, #show-right-pane-button {
|
.hide-right-pane-button, .show-right-pane-button {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 10px;
|
bottom: 10px;
|
||||||
right: 10px;
|
right: 10px;
|
||||||
z-index: 1000;
|
z-index: 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
#hide-left-pane-button, #show-left-pane-button {
|
.hide-left-pane-button, .show-left-pane-button {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 10px;
|
bottom: 10px;
|
||||||
left: 10px;
|
left: 10px;
|
||||||
@ -20,15 +20,15 @@ const TPL = `
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<button id="hide-left-pane-button" class="btn btn-sm icon-button bx bx-chevrons-left hide-in-zen-mode" title="Show sidebar"></button>
|
<button class="hide-left-pane-button btn btn-sm icon-button bx bx-chevrons-left" title="Show sidebar"></button>
|
||||||
<button id="show-left-pane-button" class="btn btn-sm icon-button bx bx-chevrons-right hide-in-zen-mode" title="Hide sidebar"></button>
|
<button class="show-left-pane-button btn btn-sm icon-button bx bx-chevrons-right" title="Hide sidebar"></button>
|
||||||
|
|
||||||
<button id="hide-right-pane-button" class="btn btn-sm icon-button bx bx-chevrons-right hide-in-zen-mode" title="Hide sidebar"></button>
|
<button class="hide-right-pane-button btn btn-sm icon-button bx bx-chevrons-right" title="Hide sidebar"></button>
|
||||||
<button id="show-right-pane-button" class="btn btn-sm icon-button bx bx-chevrons-left hide-in-zen-mode" title="Show sidebar"></button>
|
<button class="show-right-pane-button btn btn-sm icon-button bx bx-chevrons-left" title="Show sidebar"></button>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
export default class SidebarToggle extends BasicWidget {
|
export default class SidepaneToggles extends BasicWidget {
|
||||||
constructor(appContext) {
|
constructor(appContext) {
|
||||||
super(appContext);
|
super(appContext);
|
||||||
|
|
||||||
@ -41,11 +41,11 @@ export default class SidebarToggle extends BasicWidget {
|
|||||||
this.toggleSidebar('left', options.is('leftPaneVisible'));
|
this.toggleSidebar('left', options.is('leftPaneVisible'));
|
||||||
this.toggleSidebar('right', options.is('rightPaneVisible'));
|
this.toggleSidebar('right', options.is('rightPaneVisible'));
|
||||||
|
|
||||||
$("#show-right-pane-button").on('click', () => toggleAndSave('right', true));
|
this.$widget.find(".show-right-pane-button").on('click', () => this.toggleAndSave('right', true));
|
||||||
$("#hide-right-pane-button").on('click', () => toggleAndSave('right', false));
|
this.$widget.find(".hide-right-pane-button").on('click', () => this.toggleAndSave('right', false));
|
||||||
|
|
||||||
$("#show-left-pane-button").on('click', () => toggleAndSave('left', true));
|
this.$widget.find(".show-left-pane-button").on('click', () => this.toggleAndSave('left', true));
|
||||||
$("#hide-left-pane-button").on('click', () => toggleAndSave('left', false));
|
this.$widget.find(".hide-left-pane-button").on('click', () => this.toggleAndSave('left', false));
|
||||||
|
|
||||||
splitService.setupSplit(this.paneVisible.left, this.paneVisible.right);
|
splitService.setupSplit(this.paneVisible.left, this.paneVisible.right);
|
||||||
|
|
||||||
@ -54,8 +54,8 @@ export default class SidebarToggle extends BasicWidget {
|
|||||||
|
|
||||||
toggleSidebar(side, show) {
|
toggleSidebar(side, show) {
|
||||||
$(`#${side}-pane`).toggle(show);
|
$(`#${side}-pane`).toggle(show);
|
||||||
$(`#show-${side}-pane-button`).toggle(!show);
|
this.$widget.find(`.show-${side}-pane-button`).toggle(!show);
|
||||||
$(`#hide-${side}-pane-button`).toggle(show);
|
this.$widget.find(`.hide-${side}-pane-button`).toggle(show);
|
||||||
|
|
||||||
this.paneVisible[side] = show;
|
this.paneVisible[side] = show;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import BasicWidget from "./basic_widget.js";
|
import BasicWidget from "./basic_widget.js";
|
||||||
import HistoryNavigationWidget from "./history_navigation.js";
|
import HistoryNavigationWidget from "./history_navigation.js";
|
||||||
import keyboardActionService from "../services/keyboard_actions.js";
|
|
||||||
import protectedSessionService from "../services/protected_session.js";
|
import protectedSessionService from "../services/protected_session.js";
|
||||||
|
|
||||||
const TPL = `
|
const TPL = `
|
||||||
|
@ -19,10 +19,6 @@ const TPL = `
|
|||||||
|
|
||||||
export default class TitleBarButtonsWidget extends BasicWidget {
|
export default class TitleBarButtonsWidget extends BasicWidget {
|
||||||
doRender() {
|
doRender() {
|
||||||
if (!utils.isElectron()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!options.is('nativeTitleBarVisible')) {
|
if (!options.is('nativeTitleBarVisible')) {
|
||||||
this.$widget = $(TPL);
|
this.$widget = $(TPL);
|
||||||
this.$widget.show();
|
this.$widget.show();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user