kdelibs/kdelibs-udisks2_2_stage.patch

25 lines
1.3 KiB
Diff

diff --git a/solid/solid/backends/udisks2/udisksmanager.cpp b/solid/solid/backends/udisks2/udisksmanager.cpp
index ecb9add..a73cb32 100644
--- a/solid/solid/backends/udisks2/udisksmanager.cpp
+++ b/solid/solid/backends/udisks2/udisksmanager.cpp
@@ -203,6 +203,10 @@ void Manager::slotInterfacesAdded(const QDBusObjectPath &object_path, const QVar
m_deviceCache.append(udi);
Q_EMIT deviceAdded(udi);
}
+ // re-emit in case of 2-stage devices like N9 or some Android phones
+ else if (m_deviceCache.contains(udi) && interfaces_and_properties.keys().contains(UD2_DBUS_INTERFACE_FILESYSTEM)) {
+ Q_EMIT deviceAdded(udi);
+ }
}
void Manager::slotInterfacesRemoved(const QDBusObjectPath &object_path, const QStringList &interfaces)
@@ -222,7 +222,7 @@ void Manager::slotInterfacesRemoved(const QDBusObjectPath &object_path, const QS
Device device(udi);
- if (!udi.isEmpty() && (interfaces.isEmpty() || device.interfaces().isEmpty() || device.interfaces().contains(UD2_DBUS_INTERFACE_FILESYSTEM))) {
+ if (!udi.isEmpty() && (interfaces.isEmpty() || device.interfaces().isEmpty() || interfaces.contains(UD2_DBUS_INTERFACE_FILESYSTEM))) {
Q_EMIT deviceRemoved(udi);
m_deviceCache.removeAll(udi);
DeviceBackend::destroyBackend(udi);