diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-07-14 14:22:06 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-07-17 12:31:33 +0200 |
commit | 3e23f7b4a418793846cf6cef602d2558ed5ccb6e (patch) | |
tree | 4fe19880ceb91a2346381ee2102eebe371427d2e /svtools | |
parent | 1569b4b1813d44b38e250111411f3c75eeb0c483 (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>
Diffstat (limited to 'svtools')
-rw-r--r-- | svtools/source/contnr/svlbitm.cxx | 20 |
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()); } // *************************************************************** |