mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
fixed context menu positioning when scaling is active
This commit is contained in:
parent
b365c186a1
commit
88e8eb7e9c
@ -8,6 +8,7 @@ import contextMenu from "./services/context_menu.js";
|
|||||||
import DesktopMainWindowLayout from "./layouts/desktop_main_window_layout.js";
|
import DesktopMainWindowLayout from "./layouts/desktop_main_window_layout.js";
|
||||||
import glob from "./services/glob.js";
|
import glob from "./services/glob.js";
|
||||||
import DesktopExtraWindowLayout from "./layouts/desktop_extra_window_layout.js";
|
import DesktopExtraWindowLayout from "./layouts/desktop_extra_window_layout.js";
|
||||||
|
import zoomService from './services/zoom.js';
|
||||||
|
|
||||||
glob.setupGlobs();
|
glob.setupGlobs();
|
||||||
|
|
||||||
@ -133,9 +134,11 @@ if (utils.isElectron()) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const zoomLevel = zoomService.getCurrentZoom();
|
||||||
|
|
||||||
contextMenu.show({
|
contextMenu.show({
|
||||||
x: params.x,
|
x: params.x / zoomLevel,
|
||||||
y: params.y,
|
y: params.y / zoomLevel,
|
||||||
items,
|
items,
|
||||||
selectMenuItemHandler: ({command, spellingSuggestion}) => {
|
selectMenuItemHandler: ({command, spellingSuggestion}) => {
|
||||||
if (command === 'replaceMisspelling') {
|
if (command === 'replaceMisspelling') {
|
||||||
|
@ -4,7 +4,7 @@ import DialogCommandExecutor from "./dialog_command_executor.js";
|
|||||||
import Entrypoints from "./entrypoints.js";
|
import Entrypoints from "./entrypoints.js";
|
||||||
import options from "./options.js";
|
import options from "./options.js";
|
||||||
import utils from "./utils.js";
|
import utils from "./utils.js";
|
||||||
import ZoomService from "./zoom.js";
|
import zoomService from "./zoom.js";
|
||||||
import TabManager from "./tab_manager.js";
|
import TabManager from "./tab_manager.js";
|
||||||
import treeService from "./tree.js";
|
import treeService from "./tree.js";
|
||||||
import Component from "../widgets/component.js";
|
import Component from "../widgets/component.js";
|
||||||
@ -73,7 +73,7 @@ class AppContext extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (utils.isElectron()) {
|
if (utils.isElectron()) {
|
||||||
this.child(new ZoomService());
|
this.child(zoomService);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.triggerEvent('initialRenderComplete');
|
this.triggerEvent('initialRenderComplete');
|
||||||
|
@ -81,24 +81,29 @@ function goToLink(e) {
|
|||||||
}
|
}
|
||||||
else if (e.which === 1) {
|
else if (e.which === 1) {
|
||||||
const activeTabContext = appContext.tabManager.getActiveTabContext();
|
const activeTabContext = appContext.tabManager.getActiveTabContext();
|
||||||
activeTabContext.setNote(notePath)
|
activeTabContext.setNote(notePath);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const address = $link.attr('href');
|
if (e.which === 1) {
|
||||||
|
const address = $link.attr('href');
|
||||||
|
|
||||||
if (address && address.startsWith('http')) {
|
if (address && address.startsWith('http')) {
|
||||||
window.open(address, '_blank');
|
window.open(address, '_blank');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function newTabContextMenu(e) {
|
function linkContextMenu(e) {
|
||||||
const $link = $(e.target).closest("a");
|
const $link = $(e.target).closest("a");
|
||||||
|
|
||||||
const notePath = getNotePathFromLink($link);
|
const notePath = getNotePathFromLink($link);
|
||||||
@ -113,7 +118,7 @@ function newTabContextMenu(e) {
|
|||||||
x: e.pageX,
|
x: e.pageX,
|
||||||
y: e.pageY,
|
y: e.pageY,
|
||||||
items: [
|
items: [
|
||||||
{title: "Open note in new tab", command: "openNoteInNewTab", uiIcon: "arrow-up-right"},
|
{title: "Open note in new tab", command: "openNoteInNewTab", uiIcon: "empty"},
|
||||||
{title: "Open note in new window", command: "openNoteInNewWindow", uiIcon: "window-open"}
|
{title: "Open note in new window", command: "openNoteInNewWindow", uiIcon: "window-open"}
|
||||||
],
|
],
|
||||||
selectMenuItemHandler: ({command}) => {
|
selectMenuItemHandler: ({command}) => {
|
||||||
@ -156,18 +161,19 @@ $(document).on('mousedown', '.note-detail-text a', function (e) {
|
|||||||
$(document).on('mousedown', '.note-detail-book a', goToLink);
|
$(document).on('mousedown', '.note-detail-book a', goToLink);
|
||||||
$(document).on('mousedown', '.note-detail-render a', goToLink);
|
$(document).on('mousedown', '.note-detail-render a', goToLink);
|
||||||
$(document).on('mousedown', '.note-detail-text a.reference-link', goToLink);
|
$(document).on('mousedown', '.note-detail-text a.reference-link', goToLink);
|
||||||
$(document).on('mousedown', 'note-detail-readonly-text a', goToLink);
|
$(document).on('mousedown', '.note-detail-readonly-text a', goToLink);
|
||||||
$(document).on('mousedown', 'a.ck-link-actions__preview', goToLink);
|
$(document).on('mousedown', 'a.ck-link-actions__preview', goToLink);
|
||||||
$(document).on('click', 'a.ck-link-actions__preview', e => {
|
$(document).on('click', 'a.ck-link-actions__preview', e => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('contextmenu', 'a.ck-link-actions__preview', newTabContextMenu);
|
$(document).on('contextmenu', 'a.ck-link-actions__preview', linkContextMenu);
|
||||||
$(document).on('contextmenu', '.note-detail-text a', newTabContextMenu);
|
$(document).on('contextmenu', '.note-detail-text a', linkContextMenu);
|
||||||
$(document).on('contextmenu', "a[data-action='note']", newTabContextMenu);
|
$(document).on('contextmenu', '.note-detail-readonly-text a', linkContextMenu);
|
||||||
$(document).on('contextmenu', ".note-detail-render a", newTabContextMenu);
|
$(document).on('contextmenu', "a[data-action='note']", linkContextMenu);
|
||||||
$(document).on('contextmenu', ".note-paths-widget a", newTabContextMenu);
|
$(document).on('contextmenu', ".note-detail-render a", linkContextMenu);
|
||||||
|
$(document).on('contextmenu', ".note-paths-widget a", linkContextMenu);
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
getNotePathFromUrl,
|
getNotePathFromUrl,
|
||||||
|
@ -5,11 +5,13 @@ import utils from "../services/utils.js";
|
|||||||
const MIN_ZOOM = 0.5;
|
const MIN_ZOOM = 0.5;
|
||||||
const MAX_ZOOM = 2.0;
|
const MAX_ZOOM = 2.0;
|
||||||
|
|
||||||
export default class ZoomService extends Component {
|
class ZoomService extends Component {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this.setZoomFactor(options.getFloat('zoomFactor'));
|
options.initializedPromise.then(() => {
|
||||||
|
this.setZoomFactor(options.getFloat('zoomFactor'));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
setZoomFactor(zoomFactor) {
|
setZoomFactor(zoomFactor) {
|
||||||
@ -46,3 +48,7 @@ export default class ZoomService extends Component {
|
|||||||
this.setZoomFactorAndSave(zoomFactor);
|
this.setZoomFactorAndSave(zoomFactor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const zoomService = new ZoomService();
|
||||||
|
|
||||||
|
export default zoomService;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user