From 4f9df95dc80fb15df74a124290d638053fc148bb Mon Sep 17 00:00:00 2001 From: PulkoMandy Date: Thu, 23 Nov 2023 20:53:41 +0100 Subject: [PATCH] HaikuDepot TextView: add a way to relayout when document changed When adding new paragraphs or otherwise editing a document from outside the view, the layout needs to be recomputed and the view invalidated. Otherwise, the changed text is not shown. Change-Id: Id3c60d8b510443f71ebbc805b7b7ca5b35220fd5 Reviewed-on: https://review.haiku-os.org/c/haiku/+/7131 Reviewed-by: waddlesplash Tested-by: Commit checker robot --- src/apps/haikudepot/textview/TextDocumentView.cpp | 8 ++++++++ src/apps/haikudepot/textview/TextDocumentView.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/src/apps/haikudepot/textview/TextDocumentView.cpp b/src/apps/haikudepot/textview/TextDocumentView.cpp index 379d0b872f..56c9139ce1 100644 --- a/src/apps/haikudepot/textview/TextDocumentView.cpp +++ b/src/apps/haikudepot/textview/TextDocumentView.cpp @@ -447,6 +447,14 @@ TextDocumentView::Copy(BClipboard* clipboard) } +void +TextDocumentView::Relayout() +{ + fTextDocumentLayout.Invalidate(); + _UpdateScrollBars(); +} + + // #pragma mark - private diff --git a/src/apps/haikudepot/textview/TextDocumentView.h b/src/apps/haikudepot/textview/TextDocumentView.h index ffd33e340a..c681852153 100644 --- a/src/apps/haikudepot/textview/TextDocumentView.h +++ b/src/apps/haikudepot/textview/TextDocumentView.h @@ -49,6 +49,8 @@ public: virtual void GetHeightForWidth(float width, float* min, float* max, float* preferred); + virtual void Relayout(); + // TextDocumentView interface void SetTextDocument( const TextDocumentRef& document);