diff options
author | David Zeuthen <davidz@redhat.com> | 2012-01-10 16:31:17 -0500 |
---|---|---|
committer | David Zeuthen <davidz@redhat.com> | 2012-01-10 16:31:17 -0500 |
commit | 622458c48b14de6c981f5467809a09ef847d2245 (patch) | |
tree | 68f8f1f231d8ce6eb79d6412be75108b137fefbd /src/udiskslinuxdrive.c | |
parent | 0f32509eb5d30bb191be66088ea74fbd679ac446 (diff) |
Don't set Drive:Ejectable to TRUE for floppy drives
Signed-off-by: David Zeuthen <davidz@redhat.com>
Diffstat (limited to 'src/udiskslinuxdrive.c')
-rw-r--r-- | src/udiskslinuxdrive.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/udiskslinuxdrive.c b/src/udiskslinuxdrive.c index 5b251fd..46e3e4e 100644 --- a/src/udiskslinuxdrive.c +++ b/src/udiskslinuxdrive.c @@ -212,7 +212,8 @@ ptr_str_array_compare (const gchar **a, static void set_media (UDisksDrive *iface, - GUdevDevice *device) + GUdevDevice *device, + gboolean is_pc_floppy_drive) { guint n; GPtrArray *media_compat_array; @@ -224,7 +225,7 @@ set_media (UDisksDrive *iface, guint disc_track_count_audio = 0; guint disc_track_count_data = 0; gboolean force_non_removable = FALSE; - gboolean kernel_removable; + gboolean ejectable; gboolean removable; media_compat_array = g_ptr_array_new (); @@ -240,11 +241,13 @@ set_media (UDisksDrive *iface, g_ptr_array_sort (media_compat_array, (GCompareFunc) ptr_str_array_compare); g_ptr_array_add (media_compat_array, NULL); - removable = kernel_removable = g_udev_device_get_sysfs_attr_as_boolean (device, "removable"); + removable = ejectable = g_udev_device_get_sysfs_attr_as_boolean (device, "removable"); if (force_non_removable) removable = FALSE; udisks_drive_set_media_removable (iface, removable); - udisks_drive_set_ejectable (iface, kernel_removable); + if (is_pc_floppy_drive) + ejectable = FALSE; + udisks_drive_set_ejectable (iface, ejectable); media_in_drive = NULL; if (udisks_drive_get_media_available (iface)) @@ -578,7 +581,7 @@ udisks_linux_drive_update (UDisksLinuxDrive *drive, udisks_drive_set_size (iface, size); udisks_drive_set_media_available (iface, media_available); udisks_drive_set_media_change_detected (iface, media_change_detected); - set_media (iface, device); + set_media (iface, device, is_pc_floppy_drive); set_rotation_rate (iface, device); set_connection_bus (iface, device); |