app: move code from GtkObject::destroy() to GObject::dispose()

This commit is contained in:
Michael Natterer
2010-09-26 22:35:49 +02:00
parent 4492725110
commit 0e17e44ba4
4 changed files with 127 additions and 145 deletions

View File

@ -117,6 +117,7 @@ static void gimp_color_managed_iface_init (GimpColorManagedInterface *i
static GObject * gimp_display_shell_constructor (GType type, static GObject * gimp_display_shell_constructor (GType type,
guint n_params, guint n_params,
GObjectConstructParam *params); GObjectConstructParam *params);
static void gimp_display_shell_dispose (GObject *object);
static void gimp_display_shell_finalize (GObject *object); static void gimp_display_shell_finalize (GObject *object);
static void gimp_display_shell_set_property (GObject *object, static void gimp_display_shell_set_property (GObject *object,
guint property_id, guint property_id,
@ -127,8 +128,6 @@ static void gimp_display_shell_get_property (GObject *object,
GValue *value, GValue *value,
GParamSpec *pspec); GParamSpec *pspec);
static void gimp_display_shell_destroy (GtkObject *object);
static void gimp_display_shell_unrealize (GtkWidget *widget); static void gimp_display_shell_unrealize (GtkWidget *widget);
static void gimp_display_shell_screen_changed (GtkWidget *widget, static void gimp_display_shell_screen_changed (GtkWidget *widget,
GdkScreen *previous); GdkScreen *previous);
@ -184,7 +183,6 @@ static void
gimp_display_shell_class_init (GimpDisplayShellClass *klass) gimp_display_shell_class_init (GimpDisplayShellClass *klass)
{ {
GObjectClass *object_class = G_OBJECT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
display_shell_signals[SCALED] = display_shell_signals[SCALED] =
@ -215,12 +213,11 @@ gimp_display_shell_class_init (GimpDisplayShellClass *klass)
G_TYPE_NONE, 0); G_TYPE_NONE, 0);
object_class->constructor = gimp_display_shell_constructor; object_class->constructor = gimp_display_shell_constructor;
object_class->dispose = gimp_display_shell_dispose;
object_class->finalize = gimp_display_shell_finalize; object_class->finalize = gimp_display_shell_finalize;
object_class->set_property = gimp_display_shell_set_property; object_class->set_property = gimp_display_shell_set_property;
object_class->get_property = gimp_display_shell_get_property; object_class->get_property = gimp_display_shell_get_property;
gtk_object_class->destroy = gimp_display_shell_destroy;
widget_class->unrealize = gimp_display_shell_unrealize; widget_class->unrealize = gimp_display_shell_unrealize;
widget_class->screen_changed = gimp_display_shell_screen_changed; widget_class->screen_changed = gimp_display_shell_screen_changed;
widget_class->popup_menu = gimp_display_shell_popup_menu; widget_class->popup_menu = gimp_display_shell_popup_menu;
@ -745,6 +742,92 @@ gimp_display_shell_constructor (GType type,
return object; return object;
} }
static void
gimp_display_shell_dispose (GObject *object)
{
GimpDisplayShell *shell = GIMP_DISPLAY_SHELL (object);
if (shell->display && gimp_display_get_shell (shell->display))
gimp_display_shell_disconnect (shell);
shell->popup_manager = NULL;
gimp_display_shell_selection_free (shell);
if (shell->filter_stack)
gimp_display_shell_filter_set (shell, NULL);
if (shell->filter_idle_id)
{
g_source_remove (shell->filter_idle_id);
shell->filter_idle_id = 0;
}
if (shell->render_surface)
{
cairo_surface_destroy (shell->render_surface);
shell->render_surface = NULL;
}
if (shell->highlight)
{
g_slice_free (GdkRectangle, shell->highlight);
shell->highlight = NULL;
}
if (shell->mask)
{
g_object_unref (shell->mask);
shell->mask = NULL;
}
if (shell->event_history)
{
g_array_free (shell->event_history, TRUE);
shell->event_history = NULL;
}
if (shell->event_queue)
{
g_array_free (shell->event_queue, TRUE);
shell->event_queue = NULL;
}
if (shell->zoom_focus_pointer_queue)
{
g_queue_free (shell->zoom_focus_pointer_queue);
shell->zoom_focus_pointer_queue = NULL;
}
if (shell->title_idle_id)
{
g_source_remove (shell->title_idle_id);
shell->title_idle_id = 0;
}
if (shell->fill_idle_id)
{
g_source_remove (shell->fill_idle_id);
shell->fill_idle_id = 0;
}
if (shell->nav_popup)
{
gtk_widget_destroy (shell->nav_popup);
shell->nav_popup = NULL;
}
if (shell->grid_dialog)
{
gtk_widget_destroy (shell->grid_dialog);
shell->grid_dialog = NULL;
}
shell->display = NULL;
G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void static void
gimp_display_shell_finalize (GObject *object) gimp_display_shell_finalize (GObject *object)
{ {
@ -847,92 +930,6 @@ gimp_display_shell_get_property (GObject *object,
} }
} }
static void
gimp_display_shell_destroy (GtkObject *object)
{
GimpDisplayShell *shell = GIMP_DISPLAY_SHELL (object);
if (shell->display && gimp_display_get_shell (shell->display))
gimp_display_shell_disconnect (shell);
shell->popup_manager = NULL;
gimp_display_shell_selection_free (shell);
if (shell->filter_stack)
gimp_display_shell_filter_set (shell, NULL);
if (shell->filter_idle_id)
{
g_source_remove (shell->filter_idle_id);
shell->filter_idle_id = 0;
}
if (shell->render_surface)
{
cairo_surface_destroy (shell->render_surface);
shell->render_surface = NULL;
}
if (shell->highlight)
{
g_slice_free (GdkRectangle, shell->highlight);
shell->highlight = NULL;
}
if (shell->mask)
{
g_object_unref (shell->mask);
shell->mask = NULL;
}
if (shell->event_history)
{
g_array_free (shell->event_history, TRUE);
shell->event_history = NULL;
}
if (shell->event_queue)
{
g_array_free (shell->event_queue, TRUE);
shell->event_queue = NULL;
}
if (shell->zoom_focus_pointer_queue)
{
g_queue_free (shell->zoom_focus_pointer_queue);
shell->zoom_focus_pointer_queue = NULL;
}
if (shell->title_idle_id)
{
g_source_remove (shell->title_idle_id);
shell->title_idle_id = 0;
}
if (shell->fill_idle_id)
{
g_source_remove (shell->fill_idle_id);
shell->fill_idle_id = 0;
}
if (shell->nav_popup)
{
gtk_widget_destroy (shell->nav_popup);
shell->nav_popup = NULL;
}
if (shell->grid_dialog)
{
gtk_widget_destroy (shell->grid_dialog);
shell->grid_dialog = NULL;
}
shell->display = NULL;
GTK_OBJECT_CLASS (parent_class)->destroy (object);
}
static void static void
gimp_display_shell_unrealize (GtkWidget *widget) gimp_display_shell_unrealize (GtkWidget *widget)
{ {

View File

@ -123,8 +123,6 @@ static void gimp_image_window_get_property (GObject *obj
GValue *value, GValue *value,
GParamSpec *pspec); GParamSpec *pspec);
static void gimp_image_window_real_destroy (GtkObject *object);
static gboolean gimp_image_window_delete_event (GtkWidget *widget, static gboolean gimp_image_window_delete_event (GtkWidget *widget,
GdkEventAny *event); GdkEventAny *event);
static gboolean gimp_image_window_configure_event (GtkWidget *widget, static gboolean gimp_image_window_configure_event (GtkWidget *widget,
@ -203,7 +201,6 @@ static void
gimp_image_window_class_init (GimpImageWindowClass *klass) gimp_image_window_class_init (GimpImageWindowClass *klass)
{ {
GObjectClass *object_class = G_OBJECT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
object_class->constructor = gimp_image_window_constructor; object_class->constructor = gimp_image_window_constructor;
@ -212,8 +209,6 @@ gimp_image_window_class_init (GimpImageWindowClass *klass)
object_class->set_property = gimp_image_window_set_property; object_class->set_property = gimp_image_window_set_property;
object_class->get_property = gimp_image_window_get_property; object_class->get_property = gimp_image_window_get_property;
gtk_object_class->destroy = gimp_image_window_real_destroy;
widget_class->delete_event = gimp_image_window_delete_event; widget_class->delete_event = gimp_image_window_delete_event;
widget_class->configure_event = gimp_image_window_configure_event; widget_class->configure_event = gimp_image_window_configure_event;
widget_class->window_state_event = gimp_image_window_window_state_event; widget_class->window_state_event = gimp_image_window_window_state_event;
@ -398,6 +393,12 @@ gimp_image_window_dispose (GObject *object)
private->dialog_factory = NULL; private->dialog_factory = NULL;
} }
if (private->menubar_manager)
{
g_object_unref (private->menubar_manager);
private->menubar_manager = NULL;
}
G_OBJECT_CLASS (parent_class)->dispose (object); G_OBJECT_CLASS (parent_class)->dispose (object);
} }
@ -481,21 +482,6 @@ gimp_image_window_get_property (GObject *object,
} }
} }
static void
gimp_image_window_real_destroy (GtkObject *object)
{
GimpImageWindow *window = GIMP_IMAGE_WINDOW (object);
GimpImageWindowPrivate *private = GIMP_IMAGE_WINDOW_GET_PRIVATE (window);
if (private->menubar_manager)
{
g_object_unref (private->menubar_manager);
private->menubar_manager = NULL;
}
GTK_OBJECT_CLASS (parent_class)->destroy (object);
}
static gboolean static gboolean
gimp_image_window_delete_event (GtkWidget *widget, gimp_image_window_delete_event (GtkWidget *widget,
GdkEventAny *event) GdkEventAny *event)
@ -1310,6 +1296,7 @@ gimp_image_window_disconnect_from_active_shell (GimpImageWindow *window)
active_display = private->active_shell->display; active_display = private->active_shell->display;
if (active_display)
g_signal_handlers_disconnect_by_func (active_display, g_signal_handlers_disconnect_by_func (active_display,
gimp_image_window_image_notify, gimp_image_window_image_notify,
window); window);
@ -1324,6 +1311,7 @@ gimp_image_window_disconnect_from_active_shell (GimpImageWindow *window)
gimp_image_window_shell_icon_notify, gimp_image_window_shell_icon_notify,
window); window);
if (private->menubar_manager)
gimp_image_window_hide_tooltip (private->menubar_manager, window); gimp_image_window_hide_tooltip (private->menubar_manager, window);
} }

View File

@ -55,7 +55,7 @@
static void gimp_navigation_editor_docked_iface_init (GimpDockedInterface *iface); static void gimp_navigation_editor_docked_iface_init (GimpDockedInterface *iface);
static void gimp_navigation_editor_destroy (GtkObject *object); static void gimp_navigation_editor_dispose (GObject *object);
static void gimp_navigation_editor_set_context (GimpDocked *docked, static void gimp_navigation_editor_set_context (GimpDocked *docked,
GimpContext *context); GimpContext *context);
@ -104,9 +104,9 @@ G_DEFINE_TYPE_WITH_CODE (GimpNavigationEditor, gimp_navigation_editor,
static void static void
gimp_navigation_editor_class_init (GimpNavigationEditorClass *klass) gimp_navigation_editor_class_init (GimpNavigationEditorClass *klass)
{ {
GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass);
gtk_object_class->destroy = gimp_navigation_editor_destroy; object_class->dispose = gimp_navigation_editor_dispose;
} }
static void static void
@ -149,14 +149,14 @@ gimp_navigation_editor_init (GimpNavigationEditor *editor)
} }
static void static void
gimp_navigation_editor_destroy (GtkObject *object) gimp_navigation_editor_dispose (GObject *object)
{ {
GimpNavigationEditor *editor = GIMP_NAVIGATION_EDITOR (object); GimpNavigationEditor *editor = GIMP_NAVIGATION_EDITOR (object);
if (editor->shell) if (editor->shell)
gimp_navigation_editor_set_shell (editor, NULL); gimp_navigation_editor_set_shell (editor, NULL);
GTK_OBJECT_CLASS (parent_class)->destroy (object); G_OBJECT_CLASS (parent_class)->dispose (object);
} }
static void static void

View File

@ -72,10 +72,9 @@ struct _GimpStatusbarMsg
static void gimp_statusbar_progress_iface_init (GimpProgressInterface *iface); static void gimp_statusbar_progress_iface_init (GimpProgressInterface *iface);
static void gimp_statusbar_dispose (GObject *object);
static void gimp_statusbar_finalize (GObject *object); static void gimp_statusbar_finalize (GObject *object);
static void gimp_statusbar_destroy (GtkObject *object);
static void gimp_statusbar_hbox_size_request (GtkWidget *widget, static void gimp_statusbar_hbox_size_request (GtkWidget *widget,
GtkRequisition *requisition, GtkRequisition *requisition,
GimpStatusbar *statusbar); GimpStatusbar *statusbar);
@ -137,11 +136,9 @@ static void
gimp_statusbar_class_init (GimpStatusbarClass *klass) gimp_statusbar_class_init (GimpStatusbarClass *klass)
{ {
GObjectClass *object_class = G_OBJECT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass);
object_class->dispose = gimp_statusbar_dispose;
object_class->finalize = gimp_statusbar_finalize; object_class->finalize = gimp_statusbar_finalize;
gtk_object_class->destroy = gimp_statusbar_destroy;
} }
static void static void
@ -262,6 +259,20 @@ gimp_statusbar_init (GimpStatusbar *statusbar)
statusbar); statusbar);
} }
static void
gimp_statusbar_dispose (GObject *object)
{
GimpStatusbar *statusbar = GIMP_STATUSBAR (object);
if (statusbar->temp_timeout_id)
{
g_source_remove (statusbar->temp_timeout_id);
statusbar->temp_timeout_id = 0;
}
G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void static void
gimp_statusbar_finalize (GObject *object) gimp_statusbar_finalize (GObject *object)
{ {
@ -286,20 +297,6 @@ gimp_statusbar_finalize (GObject *object)
G_OBJECT_CLASS (parent_class)->finalize (object); G_OBJECT_CLASS (parent_class)->finalize (object);
} }
static void
gimp_statusbar_destroy (GtkObject *object)
{
GimpStatusbar *statusbar = GIMP_STATUSBAR (object);
if (statusbar->temp_timeout_id)
{
g_source_remove (statusbar->temp_timeout_id);
statusbar->temp_timeout_id = 0;
}
GTK_OBJECT_CLASS (parent_class)->destroy (object);
}
static void static void
gimp_statusbar_hbox_size_request (GtkWidget *widget, gimp_statusbar_hbox_size_request (GtkWidget *widget,
GtkRequisition *requisition, GtkRequisition *requisition,