diff --git a/manifest-beta.json b/manifest-beta.json
index 31d0072..89cc575 100644
--- a/manifest-beta.json
+++ b/manifest-beta.json
@@ -1,7 +1,7 @@
{
"id": "obsidian-excalidraw-plugin",
"name": "Excalidraw",
- "version": "2.4.0-rc-2",
+ "version": "2.4.0",
"minAppVersion": "1.1.6",
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
"author": "Zsolt Viczian",
diff --git a/manifest.json b/manifest.json
index 674d5f5..7ece513 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,7 +1,7 @@
{
"id": "obsidian-excalidraw-plugin",
"name": "Excalidraw",
- "version": "2.3.0",
+ "version": "2.4.0",
"minAppVersion": "1.1.6",
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
"author": "Zsolt Viczian",
diff --git a/package.json b/package.json
index fc20054..8151541 100644
--- a/package.json
+++ b/package.json
@@ -19,7 +19,7 @@
"license": "MIT",
"dependencies": {
"@popperjs/core": "^2.11.8",
- "@zsviczian/excalidraw": "0.17.1-obsidian-45",
+ "@zsviczian/excalidraw": "0.17.1-obsidian-46",
"chroma-js": "^2.4.2",
"clsx": "^2.0.0",
"@zsviczian/colormaster": "^1.2.2",
diff --git a/src/ExcalidrawView.ts b/src/ExcalidrawView.ts
index 2caa573..3230432 100644
--- a/src/ExcalidrawView.ts
+++ b/src/ExcalidrawView.ts
@@ -1539,7 +1539,7 @@ export default class ExcalidrawView extends TextFileView {
if(!this.excalidrawAPI || !this.excalidrawData.loaded || !this.isDirty()) {
return;
}
- this.save();
+ this.forceSave(true);
};
this.registerDomEvent(this.ownerWindow, "keydown", onKeyDown, false);
diff --git a/src/dialogs/Messages.ts b/src/dialogs/Messages.ts
index dda0ac3..1a4dd42 100644
--- a/src/dialogs/Messages.ts
+++ b/src/dialogs/Messages.ts
@@ -17,6 +17,49 @@ I develop this plugin as a hobby, spending my free time doing this. If you find

`,
+"2.4.0": `
+
+
+## New
+- Flowcharts with CTRL/CMD+Arrow and ALT/OPT+Arrow keys
+- Improved PDF Support
+ - PDF++ cropped area paste
+ - Import PDF into frames
+- Element links with metadata
+- Obisidan Hotkey overrides
+- Support for Zotero style markdown links
+
+## QoL
+- Much improved freedraw flow, less autosave glitches
+- Link editor CTRL+Meta/(CTRL+CMD) + click or via the command palette "Open the image-link or LaTeX-formula editor.
+- Improved search and search results
+- Disable double tap ereaser activation in pen mode
+- Single click editing of markdown embeddables
+- Set grid size and frequency
+- Improved paste
+- Pan & Zoom while editing Text
+- Save active too-state (e.g. tool-lock) with the drawing
+- Show/hide "sword" splashscreen in new drawings
+
+## Fixed
+- Duplicate line points when Alt+click adding new points in line editor- - Excalidraw Automate measureText, impacting gate placement in ExcaliBrain
+- If a group includes a frame, the image reference will include all the elements in the frame, not just the frame
+- Excalidraw rendering issues in markdown preview
+- Markdown pages embedded in Excalidraw were broken
+- Drawing did not save arrow type
+- Fixed rendering of newly pasted links
+
+## ExcalidrawAutomate
+- new functions
+ - tex2dataURL
+ - addElementsToFrame
+ - resetImageAspectRatio
+- Changed
+ - getViewSelectedElements(includeFrameChildren: boolean = true);
+ - getOriginalImageSize with option to wait for the image to load
+`,
"2.3.0": `
I am moving to a new release approach aiming to publish one update per month to the Obsidian script store. If you want to continue to receive more frequent updates with new features and minor bug fixes, then join the beta testing team. [#1912](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1912)
diff --git a/src/menu/ActionIcons.tsx b/src/menu/ActionIcons.tsx
index bdd944f..1b67279 100644
--- a/src/menu/ActionIcons.tsx
+++ b/src/menu/ActionIcons.tsx
@@ -777,7 +777,11 @@ export const penIcon = (pen: PenStyle) => {
strokeLinecap="round"
strokeLinejoin="round"
>
-
+
)
@@ -791,6 +795,7 @@ export const penIcon = (pen: PenStyle) => {
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
+ style={pen.strokeColor ? { filter: "var(--theme-filter)" } : {}}
>
@@ -822,6 +827,7 @@ export const penIcon = (pen: PenStyle) => {
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
+ style={pen.strokeColor ? { filter: "var(--theme-filter)" } : {}}
>
@@ -834,6 +840,7 @@ export const penIcon = (pen: PenStyle) => {
strokeWidth="2"
fill={pen.strokeColor??"var(--icon-fill-color)"}
stroke={pen.strokeColor??"var(--icon-fill-color)"}
+ style={pen.strokeColor ? { filter: "var(--theme-filter)" } : {}}
>
@@ -846,6 +853,7 @@ export const penIcon = (pen: PenStyle) => {
strokeWidth="2"
fill={pen.strokeColor??"var(--icon-fill-color)"}
stroke={pen.strokeColor??"var(--icon-fill-color)"}
+ style={pen.strokeColor ? { filter: "var(--theme-filter)" } : {}}
>
@@ -860,6 +868,7 @@ export const penIcon = (pen: PenStyle) => {
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
+ style={pen.strokeColor ? { filter: "var(--theme-filter)" } : {}}
>