From 8f61af3616b77e68bca105f49fb1df6617f0ea69 Mon Sep 17 00:00:00 2001 From: abose Date: Fri, 10 Apr 2026 19:56:53 +0530 Subject: [PATCH 1/4] fix(mdviewer): clear sync highlights when cursor sync is toggled off When the user disables cursor sync via the toolbar button, any existing highlights on both sides should be cleared: - Viewer: clear .cursor-sync-highlight element (paragraph class, br-line span, or code-line overlay) and reset _lastHighlight tracking - CM: remove the cm-cursor-sync-highlight line class --- src-mdviewer/src/bridge.js | 9 +++++++++ .../Phoenix-live-preview/MarkdownSync.js | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/src-mdviewer/src/bridge.js b/src-mdviewer/src/bridge.js index ee35477ca..dfd25b292 100644 --- a/src-mdviewer/src/bridge.js +++ b/src-mdviewer/src/bridge.js @@ -537,6 +537,15 @@ export function initBridge() { // Cursor sync toggle on("toggle:cursorSync", ({ enabled }) => { + // Clear any existing highlights when cursor sync is disabled + if (!enabled) { + const viewer = document.getElementById("viewer-content"); + if (viewer) { + _removeCursorHighlight(viewer); + } + _lastHighlightSourceLine = null; + _lastHighlightTargetLine = null; + } sendToParent("mdviewrCursorSyncToggle", { enabled }); }); diff --git a/src/extensionsIntegrated/Phoenix-live-preview/MarkdownSync.js b/src/extensionsIntegrated/Phoenix-live-preview/MarkdownSync.js index 78f90080b..eb22d29f0 100644 --- a/src/extensionsIntegrated/Phoenix-live-preview/MarkdownSync.js +++ b/src/extensionsIntegrated/Phoenix-live-preview/MarkdownSync.js @@ -131,6 +131,14 @@ define(function (require, exports, module) { break; case "mdviewrCursorSyncToggle": _cursorSyncEnabled = !!data.enabled; + // Clear CM line highlight when cursor sync is disabled + if (!_cursorSyncEnabled) { + const cm = _getCM(); + if (cm && _highlightLineHandle) { + cm.removeLineClass(_highlightLineHandle, "background", "cm-cursor-sync-highlight"); + _highlightLineHandle = null; + } + } break; case "mdviewrThemeToggle": sendThemeOverride(data.theme); From 52e153d88a7a1df7d5624106152969c5247d32e1 Mon Sep 17 00:00:00 2001 From: abose Date: Fri, 10 Apr 2026 19:57:57 +0530 Subject: [PATCH 2/4] fix: disable markdown print in tauri desktop app and safari --- src-mdviewer/src/components/embedded-toolbar.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src-mdviewer/src/components/embedded-toolbar.js b/src-mdviewer/src/components/embedded-toolbar.js index 214dbfb99..aa3f01699 100644 --- a/src-mdviewer/src/components/embedded-toolbar.js +++ b/src-mdviewer/src/components/embedded-toolbar.js @@ -50,6 +50,12 @@ const THRESHOLD_BLOCKS = 640; // collapse block elements + image first const THRESHOLD_LISTS = 590; // then lists const THRESHOLD_TEXT = 590; // finally text formatting (all dropdowns collapsed) +// window.print() from inside an iframe is a no-op in WKWebView (Safari on macOS), +// which is what Tauri uses for the Mac desktop build. Hide the button there. +const _isMacWebKit = /Mac/.test(navigator.platform) + && /AppleWebKit/.test(navigator.userAgent) + && !/Chrome|CriOS|Edg|Firefox|FxiOS/.test(navigator.userAgent); + const allIcons = { Bold, Italic, Strikethrough, Underline, Code, Link, List, ListOrdered, ListChecks, Quote, Minus, Table, FileCode, ChevronDown, Type, MoreHorizontal, Pencil, BookOpen, Link2, Link2Off, Printer, Image: ImageIcon, Upload, Sun, Moon }; @@ -89,9 +95,9 @@ function renderReadMode() { - + `} - + `}