mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[markdown][compose] IJPL-175711 IJPL-175739 Auto-scroll to the caret position after zooming/switching between views
GitOrigin-RevId: 796ef433da94b362c8cbd325255341915035a335
This commit is contained in:
committed by
intellij-monorepo-bot
parent
dacd545459
commit
0458e409ee
+11
-1
@@ -107,6 +107,13 @@ internal class MarkdownComposePanel(
|
||||
}
|
||||
}
|
||||
}
|
||||
LaunchedEffect(it.initialScrollOffset) {
|
||||
coroutineScope.launch {
|
||||
if (it.initialScrollOffset != 0) {
|
||||
scrollToLineFlow.emit(it.initialScrollOffset)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Markdown(
|
||||
it.content,
|
||||
@@ -122,7 +129,10 @@ internal class MarkdownComposePanel(
|
||||
}
|
||||
|
||||
override fun setHtml(html: String, initialScrollOffset: Int, document: VirtualFile?) {
|
||||
updateHandler.setContent(html, initialScrollOffset, document)
|
||||
}
|
||||
|
||||
override fun setHtml(html: String, initialScrollOffset: Int, initialScrollLineNumber: Int, document: VirtualFile?) {
|
||||
updateHandler.setContent(html, initialScrollLineNumber, document)
|
||||
}
|
||||
|
||||
override fun reloadWithOffset(offset: Int) {
|
||||
|
||||
+4
@@ -48,6 +48,10 @@ public interface MarkdownHtmlPanel extends ScrollableMarkdownPreview, Disposable
|
||||
|
||||
void setHtml(@NotNull String html, int initialScrollOffset, @Nullable VirtualFile document);
|
||||
|
||||
default void setHtml(@NotNull String html, int initialScrollOffset, int initialScrollLineNumber, @Nullable VirtualFile document) {
|
||||
setHtml(html, initialScrollOffset, document);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return null if current preview implementation doesn't support any message passing.
|
||||
*/
|
||||
|
||||
+2
-1
@@ -215,7 +215,8 @@ class MarkdownPreviewFileEditor(
|
||||
val editor = mainEditor.firstOrNull() ?: return
|
||||
writeIntentReadAction {
|
||||
val offset = editor.caretModel.offset
|
||||
panel.setHtml(lastRenderedHtml, offset, file)
|
||||
val line = editor.document.getLineNumber(offset)
|
||||
panel.setHtml(lastRenderedHtml, offset, line, file)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user