Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/keenwrite.git

keep scroll position when updating previews

AuthorKarl Tauber <email>
Date2015-07-29 15:34:50 GMT+0200
Commit63a13d7ebb6f72ac6330a30000b916121833d208
Parent74fd137
Delta19 lines added, 1 line removed, 18-line increase
src/main/java/org/markdownwriterfx/preview/ASTPreview.java
void update(RootNode astRoot) {
+ double scrollTop = textArea.getScrollTop();
+ double scrollLeft = textArea.getScrollLeft();
+
textArea.setText(GraphUtils.printTree(astRoot, new ToStringFormatter<>()));
+
+ textArea.setScrollTop(scrollTop);
+ textArea.setScrollLeft(scrollLeft);
}
src/main/java/org/markdownwriterfx/preview/HtmlSourcePreview.java
void update(RootNode astRoot) {
+ double scrollTop = textArea.getScrollTop();
+
textArea.setText(WebViewPreview.toHtml(astRoot));
+
+ textArea.setScrollTop(scrollTop);
}
src/main/java/org/markdownwriterfx/preview/WebViewPreview.java
void update(RootNode astRoot) {
+ Object scrollXobj = webView.getEngine().executeScript("window.scrollX");
+ Object scrollYobj = webView.getEngine().executeScript("window.scrollY");
+ int scrollX = (scrollXobj instanceof Number) ? ((Number)scrollXobj).intValue() : 0;
+ int scrollY = (scrollYobj instanceof Number) ? ((Number)scrollYobj).intValue() : 0;
+ String scrollScript = (scrollX > 0 || scrollY > 0)
+ ? (" onload='window.scrollTo("+scrollX+", "+scrollY+");'")
+ : null;
+
webView.getEngine().loadContent(
"<!DOCTYPE html><html><head><link rel=\"stylesheet\" href=\""
+ getClass().getResource("markdownpad-github.css")
- + "\"></head><body>"
+ + "\"></head><body" + scrollScript + ">"
+ toHtml(astRoot)
+ "</body></html>");