From e34579c250f2ae8a21e96452add9d83d1e381411 Mon Sep 17 00:00:00 2001 From: Edoardo Carmignani Date: Fri, 26 Sep 2025 12:16:23 +0200 Subject: [PATCH 1/5] fix: change patched method. Closes #5 Patch pathRenderer prototype instead of single first instance. From patching pathRendere.drawLinkPath to pathRenderer.constructor.prototype.drawLinkPath Same for calculateCenterPoint fix: store original prototype methods --- web/js/ExtraLinks.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/web/js/ExtraLinks.js b/web/js/ExtraLinks.js index 11501a6..099f451 100644 --- a/web/js/ExtraLinks.js +++ b/web/js/ExtraLinks.js @@ -95,14 +95,15 @@ export class ExtraLinks { patchDrawLinkPath() { const pathRenderer = app.canvas.linkRenderer.pathRenderer; + const pathRendererConstructor = pathRenderer.constructor const _originalDrawLinkPath = pathRenderer.drawLinkPath; const _originalCalculateCenterPoint = pathRenderer.calculateCenterPoint; - pathRenderer.drawLinkPath = function drawLinkPath(ctx, path, link2, context, lineWidth, color2) { + pathRendererConstructor.prototype.drawLinkPath = function drawLinkPath(ctx, path, link2, context, lineWidth, color2) { if (!app.extensionManager.setting.get("Extra Links.General.Enable")) { - pathRenderer.drawLinkPath = _originalDrawLinkPath; - pathRenderer.calculateCenterPoint = _originalCalculateCenterPoint; + pathRendererConstructor.prototype.drawLinkPath = _originalDrawLinkPath; + pathRendererConstructor.prototype.calculateCenterPoint = _originalCalculateCenterPoint; return; } @@ -141,7 +142,7 @@ export class ExtraLinks { ctx.stroke(path); - pathRenderer.calculateCenterPoint = (...args) => { + pathRendererConstructor.prototype.calculateCenterPoint = (...args) => { return link2.centerPos = {x: pos[0], y: pos[1]} } } From cad5b3bb250b3822e32d23f99a21f4157dae9799 Mon Sep 17 00:00:00 2001 From: Edoardo Carmignani Date: Fri, 26 Sep 2025 12:47:09 +0200 Subject: [PATCH 2/5] style: add missing semicolon --- web/js/ExtraLinks.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/js/ExtraLinks.js b/web/js/ExtraLinks.js index 099f451..df495d6 100644 --- a/web/js/ExtraLinks.js +++ b/web/js/ExtraLinks.js @@ -95,7 +95,7 @@ export class ExtraLinks { patchDrawLinkPath() { const pathRenderer = app.canvas.linkRenderer.pathRenderer; - const pathRendererConstructor = pathRenderer.constructor + const pathRendererConstructor = pathRenderer.constructor; const _originalDrawLinkPath = pathRenderer.drawLinkPath; const _originalCalculateCenterPoint = pathRenderer.calculateCenterPoint; From 578aed672d69e120fed991b64fdbcc2c3564b4cf Mon Sep 17 00:00:00 2001 From: Edoardo Carmignani Date: Fri, 26 Sep 2025 12:47:22 +0200 Subject: [PATCH 3/5] chore: update CHANGELOG.md --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07d70f1..7329b40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file. --- +## [1.0.2] - 2025-09-26 + +### Fixed + +- Change patched method from `app.canvas.linkRenderer.pathRenderer.drawLinkPath` to `app.canvas.linkRenderer.pathRenderer.constructor.prototype.drawLinkPath` in order to patch each instance instead of just the first one. ([#5](https://github.com/edoardocarmignani/extralinks/issues/5)) +- Store original prototype method to restore them when needed. + ## [1.0.1] - 2025-09-23 ### Fixed From bb90862499aa00174d49c23f91a3fe2f04121096 Mon Sep 17 00:00:00 2001 From: Edoardo Carmignani Date: Fri, 26 Sep 2025 12:56:51 +0200 Subject: [PATCH 4/5] chore: bump to version 1.0.2 --- .bumpversion.toml | 2 +- __init__.py | 2 +- pyproject.toml | 2 +- web/js/extralinks_register.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.bumpversion.toml b/.bumpversion.toml index dca311f..4c855b9 100644 --- a/.bumpversion.toml +++ b/.bumpversion.toml @@ -1,5 +1,5 @@ [tool.bumpversion] -current_version = "1.0.1" +current_version = "1.0.2" parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)" serialize = ["{major}.{minor}.{patch}"] search = "{current_version}" diff --git a/__init__.py b/__init__.py index c57c1f1..812fa61 100644 --- a/__init__.py +++ b/__init__.py @@ -8,7 +8,7 @@ __author__ = 'Edoardo Carmignani' __email__ = 'edoardo.carmignani@gmail.com' -__version__ = '1.0.1' +__version__ = '1.0.2' WEB_DIRECTORY = './web' diff --git a/pyproject.toml b/pyproject.toml index 3b83804..e65840f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "extralinks" -version = "1.0.1" +version = "1.0.2" description = "More connection links." authors = [ {name = "Edoardo Carmignani", email = "edoardo.carmignani@gmail.com"} diff --git a/web/js/extralinks_register.js b/web/js/extralinks_register.js index eefeec7..8841b2e 100644 --- a/web/js/extralinks_register.js +++ b/web/js/extralinks_register.js @@ -47,7 +47,7 @@ app.registerExtension({ }, { id: "Extra Links.ExtraLinks", - name: "Version 1.0.1", + name: "Version 1.0.2", type: () => { const container = document.createElement("span"); const btn = document.createElement("button"); From 2d193c0667cd9767be02290fd516385a061acdc0 Mon Sep 17 00:00:00 2001 From: Edoardo Carmignani Date: Fri, 26 Sep 2025 16:57:34 +0200 Subject: [PATCH 5/5] chore: fix changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7329b40..e463349 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ All notable changes to this project will be documented in this file. - Change patched method from `app.canvas.linkRenderer.pathRenderer.drawLinkPath` to `app.canvas.linkRenderer.pathRenderer.constructor.prototype.drawLinkPath` in order to patch each instance instead of just the first one. ([#5](https://github.com/edoardocarmignani/extralinks/issues/5)) - Store original prototype method to restore them when needed. +--- + ## [1.0.1] - 2025-09-23 ### Fixed