vcl/source/control/edit.cxx |   13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

New commits:
commit 07ec9edc26f675646f04721acb3f1f0334a34530
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Wed Jan 30 17:23:20 2019 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Thu Jan 31 09:52:39 2019 +0100

    Related: tdf#122780 skip GetTextWidth() when we don't need the result
    
    Change-Id: I1919d3da162e05ea6fec6269a53344b0625338e9
    Reviewed-on: https://gerrit.libreoffice.org/67174
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    Tested-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx
index f15daa864ede..bd5c6c8c55fc 100644
--- a/vcl/source/control/edit.cxx
+++ b/vcl/source/control/edit.cxx
@@ -1131,14 +1131,19 @@ void Edit::ImplShowCursor( bool bOnlyIfVisible )
 
 void Edit::ImplAlign()
 {
+    if (mnAlign == EDIT_ALIGN_LEFT && !mnXOffset)
+    {
+        // short circuit common case and avoid slow GetTextWidth() calc
+        return;
+    }
+
     long nTextWidth = GetTextWidth( ImplGetText() );
     long nOutWidth = GetOutputSizePixel().Width();
 
     if ( mnAlign == EDIT_ALIGN_LEFT )
     {
-        if( mnXOffset && ( nTextWidth < nOutWidth ) )
+        if (nTextWidth < nOutWidth)
             mnXOffset = 0;
-
     }
     else if ( mnAlign == EDIT_ALIGN_RIGHT )
     {
@@ -1161,8 +1166,8 @@ void Edit::ImplAlign()
     }
     else if( mnAlign == EDIT_ALIGN_CENTER )
     {
-            // would be nicer with check while scrolling but then it's not 
centred in scrolled state
-            mnXOffset = (nOutWidth - nTextWidth) / 2;
+        // would be nicer with check while scrolling but then it's not centred 
in scrolled state
+        mnXOffset = (nOutWidth - nTextWidth) / 2;
     }
 }
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to