Index: ui/base/dragdrop/os_exchange_data_provider_aurax11.cc |
diff --git a/ui/base/dragdrop/os_exchange_data_provider_aurax11.cc b/ui/base/dragdrop/os_exchange_data_provider_aurax11.cc |
index 20a684240e5a7ef74f07ba62d112b63aa6014b63..ebea65959db6c3afc8e2ceacf23159ae7b2fe92c 100644 |
--- a/ui/base/dragdrop/os_exchange_data_provider_aurax11.cc |
+++ b/ui/base/dragdrop/os_exchange_data_provider_aurax11.cc |
@@ -175,6 +175,13 @@ void OSExchangeDataProviderAuraX11::SetPickledData( |
} |
bool OSExchangeDataProviderAuraX11::GetString(base::string16* result) const { |
+ if (HasFile()) { |
+ // Various Linux file managers both pass a list of file:// URIs and set the |
+ // string representation to the URI. We explicitly don't want to return use |
+ // this representation. |
+ return false; |
+ } |
+ |
std::vector< ::Atom> text_atoms = ui::GetTextAtomsFrom(&atom_cache_); |
std::vector< ::Atom> requested_types; |
ui::GetAtomIntersection(text_atoms, GetTargets(), &requested_types); |
@@ -292,7 +299,7 @@ bool OSExchangeDataProviderAuraX11::HasString() const { |
std::vector< ::Atom> text_atoms = ui::GetTextAtomsFrom(&atom_cache_); |
std::vector< ::Atom> requested_types; |
ui::GetAtomIntersection(text_atoms, GetTargets(), &requested_types); |
- return !requested_types.empty(); |
+ return !requested_types.empty() && !HasFile(); |
} |
bool OSExchangeDataProviderAuraX11::HasURL() const { |