summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-07-14 14:22:06 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-07-17 12:31:33 +0200
commit3e23f7b4a418793846cf6cef602d2558ed5ccb6e (patch)
tree4fe19880ceb91a2346381ee2102eebe371427d2e
parent1569b4b1813d44b38e250111411f3c75eeb0c483 (diff)
Resolves: tdf#99071 tree view shows odd text widths when > 100 lines
reverts commit 62ea355b2679073b8ee326df5793231996136da9 Date: Thu Dec 12 09:55:35 2013 +0100 fdo#72125: GetTextWidth() can get very expensive. Let's just count an approximate width using a cached value when we have too many entries. The expert dialog got fixed by not populating it with all options on load and instead by incremental disclosure as the users searches/expands it so this optimization effort isn't needed in the meantime there was another problem the above papered over with commit b4bbb5e5d7b31caad2fbcc00382ad27df3c81001 Date: Sun May 17 22:56:46 2015 +0900 refactor how font, fg. and bg. are applied in widgets/controls which was fixed (hopefully) in the previous commit Change-Id: I8383d9cd7a9983a85c7f3acec0281d984c44f9e7 Reviewed-on: https://gerrit.libreoffice.org/39983 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
-rw-r--r--svtools/source/contnr/svlbitm.cxx20
1 files changed, 1 insertions, 19 deletions
diff --git a/svtools/source/contnr/svlbitm.cxx b/svtools/source/contnr/svlbitm.cxx
index f520b747a8c1..b36b119fdfed 100644
--- a/svtools/source/contnr/svlbitm.cxx
+++ b/svtools/source/contnr/svlbitm.cxx
@@ -216,25 +216,7 @@ void SvLBoxString::InitViewData(
{
if( !pViewData )
pViewData = pView->GetViewDataItem( pEntry, this );
-
- // fdo#72125: GetTextWidth() can get very expensive; let's just count
- // an approximate width using a cached value when we have many entries
- long nTextWidth;
- if (pView->GetEntryCount() > 100)
- {
- static SvTreeListBox *s_pPreviousView = nullptr;
- static float s_fApproximateCharWidth = 0.0;
- if (s_pPreviousView != pView)
- {
- s_pPreviousView = pView;
- s_fApproximateCharWidth = pView->approximate_char_width();
- }
- nTextWidth = maText.getLength() * s_fApproximateCharWidth;
- }
- else
- nTextWidth = pView->GetTextWidth(maText);
-
- pViewData->maSize = Size(nTextWidth, pView->GetTextHeight());
+ pViewData->maSize = Size(pView->GetTextWidth(maText), pView->GetTextHeight());
}
// ***************************************************************