Index: src/xfdesktop-volume-icon.c =================================================================== --- src/xfdesktop-volume-icon.c (revision 27044) +++ src/xfdesktop-volume-icon.c (working copy) @@ -568,27 +568,37 @@ gtk_widget_show(mi); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - mi = gtk_image_menu_item_new_with_mnemonic(_("_Mount Volume")); + if (G_UNLIKELY(thunar_vfs_volume_is_crypto(volume))) + { + mi = gtk_image_menu_item_new_with_mnemonic(_("_Setup crypto layer")); + gtk_widget_set_sensitive(mi, !thunar_vfs_volume_is_crypto_setup(volume)); + } + else + { + mi = gtk_image_menu_item_new_with_mnemonic(_("_Mount Volume")); + gtk_widget_set_sensitive(mi, !thunar_vfs_volume_is_mounted(volume)); + } gtk_widget_show(mi); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - if(thunar_vfs_volume_is_mounted(volume)) - gtk_widget_set_sensitive(mi, FALSE); - else { - g_signal_connect(G_OBJECT(mi), "activate", - G_CALLBACK(xfdesktop_volume_icon_menu_toggle_mount), - icon); - } + g_signal_connect(G_OBJECT(mi), "activate", + G_CALLBACK(xfdesktop_volume_icon_menu_toggle_mount), + icon); - mi = gtk_image_menu_item_new_with_mnemonic(_("_Unmount Volume")); + if (G_UNLIKELY(thunar_vfs_volume_is_crypto(volume))) + { + mi = gtk_image_menu_item_new_with_mnemonic(_("_Teardown crypto layer")); + gtk_widget_set_sensitive(mi, thunar_vfs_volume_is_crypto_setup(volume)); + } + else + { + mi = gtk_image_menu_item_new_with_mnemonic(_("_Unmount Volume")); + gtk_widget_set_sensitive(mi, thunar_vfs_volume_is_mounted(volume)); + } gtk_widget_show(mi); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - if(!thunar_vfs_volume_is_mounted(volume)) - gtk_widget_set_sensitive(mi, FALSE); - else { - g_signal_connect(G_OBJECT(mi), "activate", - G_CALLBACK(xfdesktop_volume_icon_menu_toggle_mount), - icon); - } + g_signal_connect(G_OBJECT(mi), "activate", + G_CALLBACK(xfdesktop_volume_icon_menu_toggle_mount), + icon); if(thunar_vfs_volume_is_disc(volume) && thunar_vfs_volume_is_ejectable(volume))