From eebee1e459b4b25074866562cf5e5c7068aca38c Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Tue, 2 Nov 2021 12:07:35 -0400 Subject: [PATCH] ktxt2 scroll window when scrolling elements --- projects/kiss-vscode/src/ktxt2/KTxt2Editor.hx | 1 + projects/kiss-vscode/src/ktxt2/KTxt2Editor.kiss | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/projects/kiss-vscode/src/ktxt2/KTxt2Editor.hx b/projects/kiss-vscode/src/ktxt2/KTxt2Editor.hx index cbd5d948..0b135578 100644 --- a/projects/kiss-vscode/src/ktxt2/KTxt2Editor.hx +++ b/projects/kiss-vscode/src/ktxt2/KTxt2Editor.hx @@ -4,6 +4,7 @@ import js.html.Document; import js.html.Window; import js.html.Element; import js.html.TextAreaElement; +import js.html.ScrollBehavior; import js.Lib; import ktxt2.EditorExterns; import ktxt2.KTxt2; diff --git a/projects/kiss-vscode/src/ktxt2/KTxt2Editor.kiss b/projects/kiss-vscode/src/ktxt2/KTxt2Editor.kiss index 55a8c54f..b1d03b03 100644 --- a/projects/kiss-vscode/src/ktxt2/KTxt2Editor.kiss +++ b/projects/kiss-vscode/src/ktxt2/KTxt2Editor.kiss @@ -175,7 +175,7 @@ (outerDiv.appendChild outputDiv) - (set lockLink.innerHTML (if locked "unlock" "lock")) + (set lockLink.innerHTML (if locked "unlock " "lock ")) (lockLink.addEventListener "click" ->(changeLockStatus (nth ktxt2Elements idx) !locked)) (outerDiv.appendChild lockLink) @@ -192,6 +192,13 @@ (var &mut updatingContent false) +(function :Void setScrollY [y] + (window.scroll + (object + left 0 + top y + behavior INSTANT))) + (function :Void updateContent [&opt text] (try { @@ -210,11 +217,13 @@ ->{ (-= elementScrollY SCROLL_AMOUNT) (updateContent) + (setScrollY (- document.body.scrollHeight document.documentElement.clientHeight)) }) (topLink.addEventListener "click" ->{ (set elementScrollY 0) (updateContent) + (setScrollY 0) }) (content.appendChild upLink) (content.appendChild topLink))) @@ -233,11 +242,13 @@ ->{ (+= elementScrollY SCROLL_AMOUNT) (updateContent) + (setScrollY 0) }) (bottomLink.addEventListener "click" ->{ (set elementScrollY (- ktxt2Elements.length PAGE_SIZE)) (updateContent) + (setScrollY (- document.body.scrollHeight document.documentElement.clientHeight)) }) (content.appendChild downLink) (content.appendChild bottomLink)))