[Libreoffice-commits] core.git: Branch 'distro/cib/libreoffice-6-1' - extensions/source
Jan-Marek Glogowski (via logerrit)
logerrit at kemper.freedesktop.org
Wed Mar 11 00:07:01 UTC 2020
extensions/source/propctrlr/standardcontrol.cxx | 3 +--
extensions/source/propctrlr/standardcontrol.hxx | 2 +-
2 files changed, 2 insertions(+), 3 deletions(-)
New commits:
commit 44d17472c426d8fa98ab3d965c7d26b07617fed2
Author: Jan-Marek Glogowski <jan-marek.glogowski at extern.cib.de>
AuthorDate: Tue Feb 25 09:50:48 2020 +0100
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Wed Mar 11 00:57:06 2020 +0100
tdf#131000 fix stuck combo box property editor
If you create a combo box control with a lot of entries, like a
large cell range in Calc, LO will take a long time to render that
cell content into the small, line-height MultiLineEdit (MLE).
This doesn't happen for master, because it contains commit
1efeb17837c22499f00299c033ae59ba3910f7d7 ("weld Property
Browser"), which changed the whole dialog and is much too large
for a backport. A debugger shows LO is stuck in TextEngine::
CreateLines, which is part of the MLE resize call stack. Checking
the master patch, it also replaces the MLE with a mere Edit. And
since editing now always happens in the popup, no functionality
is lost.
So this patch just does just that MLE => Edit replacement for old
releases. This results in a much faster visible / usable property
editor. For the attached test document with 4000 entries, resize
time goes down to 5s instead of minutes.
Fun fact: since you can't actually edit that entry in the example
bug document, because its content depends on Cell data, all the
"work" is basically mood.
Change-Id: I7583e0ed1a70765c9f3bd7ff730e920a833bf30b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89417
Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
(cherry picked from commit 3269f4fa5477104fbea363937ec84dfab2f914d9)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90219
diff --git a/extensions/source/propctrlr/standardcontrol.cxx b/extensions/source/propctrlr/standardcontrol.cxx
index 4bd7c2055d47..cf92e33f7ef7 100644
--- a/extensions/source/propctrlr/standardcontrol.cxx
+++ b/extensions/source/propctrlr/standardcontrol.cxx
@@ -930,11 +930,10 @@ namespace pcr
{
SetCompoundControl( true );
- m_pImplEdit = VclPtr<MultiLineEdit>::Create( this, WB_TABSTOP | WB_IGNORETAB | WB_NOBORDER | (_nStyle & WB_READONLY) );
+ m_pImplEdit = VclPtr<Edit>::Create( this, WB_TABSTOP | WB_IGNORETAB | WB_NOBORDER | (_nStyle & WB_READONLY) );
SetSubEdit( m_pImplEdit );
m_pImplEdit->Show();
- if ( _nStyle & WB_DROPDOWN )
{
m_pDropdownButton = VclPtr<PushButton>::Create( this, WB_NOLIGHTBORDER | WB_RECTSTYLE | WB_NOTABSTOP);
m_pDropdownButton->SetSymbol(SymbolType::SPIN_DOWN);
diff --git a/extensions/source/propctrlr/standardcontrol.hxx b/extensions/source/propctrlr/standardcontrol.hxx
index d9ec0552e3ed..dc51d8953f39 100644
--- a/extensions/source/propctrlr/standardcontrol.hxx
+++ b/extensions/source/propctrlr/standardcontrol.hxx
@@ -344,7 +344,7 @@ namespace pcr
class DropDownEditControl final : public Edit
{
VclPtr<OMultilineFloatingEdit> m_pFloatingEdit;
- VclPtr<MultiLineEdit> m_pImplEdit;
+ VclPtr<Edit> m_pImplEdit;
VclPtr<PushButton> m_pDropdownButton;
MultiLineOperationMode m_nOperationMode;
bool m_bDropdown : 1;
More information about the Libreoffice-commits
mailing list