summaryrefslogtreecommitdiff
path: root/svtools/source
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2013-03-11 15:58:46 +0100
committerBosdonnat Cedric <cedric.bosdonnat@free.fr>2013-03-11 16:37:12 +0000
commit3f04ec08b75d4ecb44ec3ec1230d2072d975c63d (patch)
tree8ff9637a1e67de063d17c84d6c8faea13de5de73 /svtools/source
parent0708ce5b862bbb052f0d50bc4d1e931ff20952e4 (diff)
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/2669 Reviewed-by: Petr Mladek <pmladek@suse.cz> Tested-by: Petr Mladek <pmladek@suse.cz> Reviewed-by: Bosdonnat Cedric <cedric.bosdonnat@free.fr> Tested-by: Bosdonnat Cedric <cedric.bosdonnat@free.fr>
Diffstat (limited to 'svtools/source')
-rw-r--r--svtools/source/control/inettbc.cxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/svtools/source/control/inettbc.cxx b/svtools/source/control/inettbc.cxx
index 6c0ce2a16bf5..706a8f74b74c 100644
--- a/svtools/source/control/inettbc.cxx
+++ b/svtools/source/control/inettbc.cxx
@@ -584,7 +584,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() )