diff --git a/thunar/thunar-device-monitor.c b/thunar/thunar-device-monitor.c index b6c64ba..9a6cb26 100644 --- a/thunar/thunar-device-monitor.c +++ b/thunar/thunar-device-monitor.c @@ -471,11 +471,24 @@ thunar_device_monitor_volume_added (GVolumeMonitor *volume_monitor, GVolume *volume, ThunarDeviceMonitor *monitor) { + ThunarDevice *device; + GList *lp; + _thunar_return_if_fail (G_IS_VOLUME_MONITOR (volume_monitor)); _thunar_return_if_fail (THUNAR_IS_DEVICE_MONITOR (monitor)); _thunar_return_if_fail (monitor->volume_monitor == volume_monitor); _thunar_return_if_fail (G_IS_VOLUME (volume)); + /* check that the volume is not in the internal list already */ + lp = g_list_find (monitor->hidden_volumes, volume); + if (lp != NULL) + return; + + /* nor in the list of visible volumes */ + device = g_hash_table_lookup (monitor->devices, volume); + if (device != NULL) + return; + /* add to internal list */ monitor->hidden_volumes = g_list_prepend (monitor->hidden_volumes, g_object_ref (volume));