1 Thunar 0.9.0 contains a bug where Audio CDs are no longer handled to
2 thunar-volman for autoplay. Apply this patch to fix the issue.
4 Index: thunar-vfs/thunar-vfs-volume-hal.c
5 ===================================================================
6 --- thunar-vfs/thunar-vfs-volume-hal.c (revision 26428)
7 +++ thunar-vfs/thunar-vfs-volume-hal.c (working copy)
9 hv = libhal_volume_from_udi (context, udi);
11 /* HAL might want us to ignore this volume for some reason */
12 - if (G_UNLIKELY (hv != NULL
13 - && (libhal_volume_should_ignore (hv)
14 - || libhal_volume_get_fsusage (hv) != LIBHAL_VOLUME_USAGE_MOUNTABLE_FILESYSTEM)))
15 + if (G_UNLIKELY (hv != NULL && libhal_volume_should_ignore (hv)))
17 libhal_volume_free (hv);
19 @@ -1020,38 +1018,42 @@
21 if (G_LIKELY (hv != NULL))
23 - /* determine the UDI of the drive to which this volume belongs */
24 - drive_udi = libhal_volume_get_storage_device_udi (hv);
25 - if (G_LIKELY (drive_udi != NULL))
26 + /* check if we have a mountable file system here */
27 + if (libhal_volume_get_fsusage (hv) == LIBHAL_VOLUME_USAGE_MOUNTABLE_FILESYSTEM)
29 - /* determine the drive for the volume */
30 - hd = libhal_drive_from_udi (context, drive_udi);
31 - if (G_LIKELY (hd != NULL))
32 + /* determine the UDI of the drive to which this volume belongs */
33 + drive_udi = libhal_volume_get_storage_device_udi (hv);
34 + if (G_LIKELY (drive_udi != NULL))
36 - /* check if we already have a volume object for the UDI */
37 - volume_hal = thunar_vfs_volume_manager_hal_get_volume_by_udi (manager_hal, udi);
38 - if (G_LIKELY (volume_hal == NULL))
39 + /* determine the drive for the volume */
40 + hd = libhal_drive_from_udi (context, drive_udi);
41 + if (G_LIKELY (hd != NULL))
43 - /* otherwise, we allocate a new volume object */
44 - volume_hal = g_object_new (THUNAR_VFS_TYPE_VOLUME_HAL, NULL);
45 - volume_hal->udi = g_strdup (udi);
47 + /* check if we already have a volume object for the UDI */
48 + volume_hal = thunar_vfs_volume_manager_hal_get_volume_by_udi (manager_hal, udi);
49 + if (G_LIKELY (volume_hal == NULL))
51 + /* otherwise, we allocate a new volume object */
52 + volume_hal = g_object_new (THUNAR_VFS_TYPE_VOLUME_HAL, NULL);
53 + volume_hal->udi = g_strdup (udi);
56 - /* update the volume object with the new data from the HAL volume/drive */
57 - thunar_vfs_volume_hal_update (volume_hal, context, hv, hd);
58 + /* update the volume object with the new data from the HAL volume/drive */
59 + thunar_vfs_volume_hal_update (volume_hal, context, hv, hd);
61 - /* add the volume object to our list if we allocated a new one */
62 - if (g_list_find (THUNAR_VFS_VOLUME_MANAGER (manager_hal)->volumes, volume_hal) == NULL)
64 - /* add the volume to the volume manager */
65 - thunar_vfs_volume_manager_add (THUNAR_VFS_VOLUME_MANAGER (manager_hal), THUNAR_VFS_VOLUME (volume_hal));
66 + /* add the volume object to our list if we allocated a new one */
67 + if (g_list_find (THUNAR_VFS_VOLUME_MANAGER (manager_hal)->volumes, volume_hal) == NULL)
69 + /* add the volume to the volume manager */
70 + thunar_vfs_volume_manager_add (THUNAR_VFS_VOLUME_MANAGER (manager_hal), THUNAR_VFS_VOLUME (volume_hal));
72 - /* release the reference on the volume */
73 - g_object_unref (G_OBJECT (volume_hal));
74 + /* release the reference on the volume */
75 + g_object_unref (G_OBJECT (volume_hal));
78 + /* release the HAL drive */
79 + libhal_drive_free (hd);
82 - /* release the HAL drive */
83 - libhal_drive_free (hd);