[Libreoffice-commits] core.git: Branch 'libreoffice-3-6' - svtools/source

Stephan Bergmann sbergman at redhat.com
Mon Mar 11 10:24:21 PDT 2013


 svtools/source/control/inettbc.cxx |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

New commits:
commit 9b068e5433a101b4fe3e936fdd4b9ae425c49423
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Mar 11 15:58:46 2013 +0100

    rhbz#915743: Avoid potentially blocking autocompletion for non file URLs
    
    In theory, the logic of how SvtMatchContext_Impl threads are used to obtain
    autocompletion information could probably be improved so that long-latency
    scenarios would only block the ultimate closing of the dialog, if anything at
    all.  In practice, this is probably not worth it, as users likely do not expect
    an autocompletion feature for remote content, anyway.  (And previous commits
    like 260afe56fd6b2f34de8290f3cdb7d1df5b88f8a8 "neon commands cannot be aborted"
    make it questionable whether any remaining blocking upon closing of the dialog
    could be bounded in a reasonable manner.)
    
    Change-Id: Ie82b9a70285b30fe88cf4c40992710087e86815e
    (cherry picked from commit c6dfb3825cad9c8f6f87f4afc8fdbc386919e640)
    Reviewed-on: https://gerrit.libreoffice.org/2670
    Reviewed-by: Fridrich Strba <fridrich at documentfoundation.org>
    Tested-by: Fridrich Strba <fridrich at documentfoundation.org>

diff --git a/svtools/source/control/inettbc.cxx b/svtools/source/control/inettbc.cxx
index 0656158..78fb4e2 100644
--- a/svtools/source/control/inettbc.cxx
+++ b/svtools/source/control/inettbc.cxx
@@ -595,7 +595,14 @@ void SvtMatchContext_Impl::doExecute()
             {
                 INetURLObject aURLObject( aMatch );
                 String aMainURL( aURLObject.GetMainURL( INetURLObject::NO_DECODE ) );
-                if ( aMainURL.Len() )
+                // Disable autocompletion for anything but the (local) file
+                // system (for which access is hopefully fast), as the logic of
+                // how SvtMatchContext_Impl is used requires this code to run to
+                // completion before further user input is processed, and even
+                // SvtMatchContext_Impl::Stop does not guarantee a speedy
+                // return:
+                if ( aMainURL.Len()
+                     && aURLObject.GetProtocol() == INET_PROT_FILE )
                 {
                     // if text input is a directory, it must be part of the match list! Until then it is scanned
                     if ( UCBContentHelper::IsFolder( aMainURL ) && aURLObject.hasFinalSlash() )


More information about the Libreoffice-commits mailing list