void gimp_display_shell_close (GimpDisplayShell *shell, gboolean kill_it) { GimpImage *image; g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell)); image = shell->display->image; /* FIXME: gimp_busy HACK not really appropriate here because we only * want to prevent the busy image and display to be closed. --Mitch */ if (image->gimp->busy) return; /* If the image has been modified, give the user a chance to save * it before nuking it--this only applies if its the last view * to an image canvas. (a image with disp_count = 1) */ if (! kill_it && image->disp_count == 1 && image->dirty && GIMP_DISPLAY_CONFIG (image->gimp->config)->confirm_on_close) { gimp_display_shell_close_dialog (shell, image); } else { gimp_display_delete (shell->display); } }
void gimp_display_shell_close (GimpDisplayShell *shell, gboolean kill_it) { GimpImage *image; g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell)); image = gimp_display_get_image (shell->display); /* FIXME: gimp_busy HACK not really appropriate here because we only * want to prevent the busy image and display to be closed. --Mitch */ if (shell->display->gimp->busy) return; /* If the image has been modified, give the user a chance to save * it before nuking it--this only applies if its the last view * to an image canvas. (a image with disp_count = 1) */ if (! kill_it && image && gimp_image_get_display_count (image) == 1 && gimp_image_is_dirty (image) && shell->display->config->confirm_on_close) { /* If there's a save dialog active for this image, then raise it. * (see bug #511965) */ GtkWidget *dialog = g_object_get_data (G_OBJECT (image), "gimp-file-save-dialog"); if (dialog) { gtk_window_present (GTK_WINDOW (dialog)); } else { gimp_display_shell_close_dialog (shell, image); } } else if (image) { gimp_display_close (shell->display); } else { GimpImageWindow *window = gimp_display_shell_get_window (shell); if (window) { GimpUIManager *manager = gimp_image_window_get_ui_manager (window); /* Activate the action instead of simply calling gimp_exit(), so * the quit action's sensitivity is taken into account. */ gimp_ui_manager_activate_action (manager, "file", "file-quit"); } } }