+ switch (response) {
+ TnyFolderStore *dst_folder;
+
+ case MODEST_GTK_RESPONSE_NEW_FOLDER:
+ modest_ui_actions_create_folder (GTK_WIDGET (dialog), GTK_WIDGET (folder_view));
+ return;
+ case GTK_RESPONSE_NONE:
+ case GTK_RESPONSE_CANCEL:
+ case GTK_RESPONSE_DELETE_EVENT:
+ break;
+ case GTK_RESPONSE_OK:
+ dst_folder = modest_folder_view_get_selected (folder_view);
+
+ if (MODEST_IS_MAIN_WINDOW (parent_win)) {
+ /* Clean list to move used for filtering */
+ modest_folder_view_set_list_to_move (folder_view, NULL);
+
+ modest_ui_actions_on_main_window_move_to (NULL,
+ GTK_WIDGET (folder_view),
+ dst_folder,
+ MODEST_MAIN_WINDOW (parent_win));
+#ifdef MODEST_TOOLKIT_HILDON2
+ } else if (MODEST_IS_FOLDER_WINDOW (parent_win)) {
+ /* Clean list to move used for filtering */
+ modest_folder_view_set_list_to_move (folder_view, NULL);
+
+ modest_ui_actions_on_folder_window_move_to (GTK_WIDGET (folder_view),
+ dst_folder,
+ helper->list,
+ GTK_WINDOW (parent_win));
+#endif
+ } else {
+ /* if the user selected a root folder
+ (account) then do not perform any action */
+ if (TNY_IS_ACCOUNT (dst_folder)) {
+ g_signal_stop_emission_by_name (dialog, "response");
+ return;
+ }
+
+ /* Clean list to move used for filtering */
+ modest_folder_view_set_list_to_move (folder_view, NULL);
+
+ /* Moving from headers window in edit mode */
+ modest_ui_actions_on_window_move_to (NULL, helper->list,
+ dst_folder,
+ MODEST_WINDOW (parent_win));
+ }
+
+ if (dst_folder)
+ g_object_unref (dst_folder);
+
+ break;
+ default:
+ g_warning ("%s unexpected response id %d", __FUNCTION__, response);
+ }
+
+ /* Free the helper and exit */
+ if (helper->list)
+ g_object_unref (helper->list);
+ g_slice_free (MoveToInfo, helper);
+ gtk_widget_destroy (GTK_WIDGET (dialog));