void tool_manager_exit (Gimp *gimp) { GimpToolManager *tool_manager; GimpContext *user_context; g_return_if_fail (GIMP_IS_GIMP (gimp)); tool_manager = tool_manager_get (gimp); tool_manager_set (gimp, NULL); user_context = gimp_get_user_context (gimp); g_signal_handlers_disconnect_by_func (user_context, tool_manager_tool_changed, tool_manager); g_signal_handlers_disconnect_by_func (user_context, tool_manager_preset_changed, tool_manager); gimp_container_remove_handler (gimp->images, tool_manager->image_clean_handler_id); gimp_container_remove_handler (gimp->images, tool_manager->image_dirty_handler_id); if (tool_manager->active_tool) g_object_unref (tool_manager->active_tool); g_slice_free (GimpToolManager, tool_manager); }
static void gimp_displays_dirty_images_disconnect (GimpContainer *dirty_container, GimpContainer *global_container) { GQuark handler; handler = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (dirty_container), "clean-handler")); gimp_container_remove_handler (global_container, handler); handler = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (dirty_container), "dirty-handler")); gimp_container_remove_handler (global_container, handler); }
static void gimp_controller_manager_free (GimpControllerManager *manager) { gimp_container_remove_handler (manager->controllers, manager->event_mapped_id); g_object_unref (manager->controllers); g_object_unref (manager->ui_manager); g_slice_free (GimpControllerManager, manager); }
static void gimp_tool_view_destroy (GtkObject *object) { GimpToolView *tool_view = GIMP_TOOL_VIEW (object); if (tool_view->visible_handler_id) { GimpContainerEditor *editor = GIMP_CONTAINER_EDITOR (tool_view); GimpContainerView *view = GIMP_CONTAINER_VIEW (editor->view); gimp_container_remove_handler (gimp_container_view_get_container (view), tool_view->visible_handler_id); tool_view->visible_handler_id = 0; } GTK_OBJECT_CLASS (parent_class)->destroy (object); }
void gimp_display_shell_disconnect (GimpDisplayShell *shell) { GimpImage *image; GimpDisplayConfig *display_config; g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell)); g_return_if_fail (GIMP_IS_DISPLAY (shell->display)); g_return_if_fail (GIMP_IS_IMAGE (shell->display->image)); image = shell->display->image; display_config = GIMP_DISPLAY_CONFIG (image->gimp->config); if (shell->icon_idle_id) { g_source_remove (shell->icon_idle_id); shell->icon_idle_id = 0; } if (shell->grid_gc) { g_object_unref (shell->grid_gc); shell->grid_gc = NULL; } if (shell->pen_gc) { g_object_unref (shell->pen_gc); shell->pen_gc = NULL; } g_signal_handlers_disconnect_by_func (image->gimp->config, gimp_display_shell_quality_notify_handler, shell); g_signal_handlers_disconnect_by_func (image->gimp->config, gimp_display_shell_ants_speed_notify_handler, shell); g_signal_handlers_disconnect_by_func (display_config->default_fullscreen_view, gimp_display_shell_padding_notify_handler, shell); g_signal_handlers_disconnect_by_func (display_config->default_view, gimp_display_shell_padding_notify_handler, shell); g_signal_handlers_disconnect_by_func (image->gimp->config, gimp_display_shell_monitor_res_notify_handler, shell); g_signal_handlers_disconnect_by_func (image->gimp->config, gimp_display_shell_nav_size_notify_handler, shell); g_signal_handlers_disconnect_by_func (image->gimp->config, gimp_display_shell_title_notify_handler, shell); g_signal_handlers_disconnect_by_func (image->gimp->config, gimp_display_shell_check_notify_handler, shell); g_signal_handlers_disconnect_by_func (image->vectors, gimp_display_shell_vectors_remove_handler, shell); g_signal_handlers_disconnect_by_func (image->vectors, gimp_display_shell_vectors_add_handler, shell); gimp_container_remove_handler (image->vectors, shell->vectors_visible_handler); gimp_container_remove_handler (image->vectors, shell->vectors_thaw_handler); gimp_container_remove_handler (image->vectors, shell->vectors_freeze_handler); g_signal_handlers_disconnect_by_func (image, gimp_display_shell_profile_changed_handler, shell); g_signal_handlers_disconnect_by_func (image, gimp_display_shell_invalidate_preview_handler, shell); g_signal_handlers_disconnect_by_func (image, gimp_display_shell_update_guide_handler, shell); g_signal_handlers_disconnect_by_func (image, gimp_display_shell_update_sample_point_handler, shell); g_signal_handlers_disconnect_by_func (image, gimp_display_shell_quick_mask_changed_handler, shell); g_signal_handlers_disconnect_by_func (image, gimp_display_shell_resolution_changed_handler, shell); g_signal_handlers_disconnect_by_func (image, gimp_display_shell_size_changed_handler, shell); g_signal_handlers_disconnect_by_func (image, gimp_display_shell_selection_control_handler, shell); g_signal_handlers_disconnect_by_func (image, gimp_display_shell_name_changed_handler, shell); g_signal_handlers_disconnect_by_func (image->grid, gimp_display_shell_grid_notify_handler, shell); g_signal_handlers_disconnect_by_func (image, gimp_display_shell_undo_event_handler, shell); g_signal_handlers_disconnect_by_func (image, gimp_display_shell_clean_dirty_handler, shell); }