app: big porting of weak pointers to g_set,clear_weak_pointer()

This started as review of weak pointers, but using
g_set_weak_pointer() and g_clear_weak_pointer() is almost always
better, and shorter.
This commit is contained in:
Michael Natterer 2023-05-22 18:13:44 +02:00
parent 4789a31a15
commit 7ada432690
52 changed files with 248 additions and 559 deletions

View File

@ -110,8 +110,7 @@ error_console_save_cmd_callback (GimpAction *action,
console->save_selection = selection;
g_object_add_weak_pointer (G_OBJECT (dialog),
(gpointer) &console->file_dialog);
g_set_weak_pointer (&console->file_dialog, dialog);
gtk_window_set_screen (GTK_WINDOW (dialog),
gtk_widget_get_screen (GTK_WIDGET (console)));

View File

@ -1177,15 +1177,7 @@ image_convert_indexed_callback (GtkWidget *dialog,
"image-convert-indexed-dither-text-layers", dither_text_layers,
NULL);
if (image_convert_indexed_custom_palette)
g_object_remove_weak_pointer (G_OBJECT (image_convert_indexed_custom_palette),
(gpointer) &image_convert_indexed_custom_palette);
image_convert_indexed_custom_palette = custom_palette;
if (image_convert_indexed_custom_palette)
g_object_add_weak_pointer (G_OBJECT (image_convert_indexed_custom_palette),
(gpointer) &image_convert_indexed_custom_palette);
g_set_weak_pointer (&image_convert_indexed_custom_palette, custom_palette);
progress = gimp_progress_start (GIMP_PROGRESS (display), FALSE,
_("Converting to indexed colors"));

View File

@ -77,8 +77,7 @@ text_editor_load_cmd_callback (GimpAction *action,
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE);
g_object_add_weak_pointer (G_OBJECT (dialog),
(gpointer) &editor->file_dialog);
g_set_weak_pointer (&editor->file_dialog, dialog);
g_signal_connect (dialog, "response",
G_CALLBACK (text_editor_load_response),

View File

@ -544,13 +544,11 @@ gimp_brush_get_standard (GimpContext *context)
if (! standard_brush)
{
standard_brush = gimp_brush_new (context, "Standard");
g_set_weak_pointer (&standard_brush,
gimp_brush_new (context, "Standard"));
gimp_data_clean (standard_brush);
gimp_data_make_internal (standard_brush, "gimp-brush-standard");
g_object_add_weak_pointer (G_OBJECT (standard_brush),
(gpointer *) &standard_brush);
}
return standard_brush;

View File

@ -1532,18 +1532,12 @@ gimp_context_set_parent (GimpContext *context,
g_signal_handlers_disconnect_by_func (context->parent,
gimp_context_parent_notify,
context);
g_object_remove_weak_pointer (G_OBJECT (context->parent),
(gpointer) &context->parent);
}
context->parent = parent;
g_set_weak_pointer (&context->parent, parent);
if (parent)
{
g_object_add_weak_pointer (G_OBJECT (context->parent),
(gpointer) &context->parent);
/* copy all undefined properties from the new parent */
gimp_context_copy_properties (parent, context,
~context->defined_props &

View File

@ -490,13 +490,11 @@ gimp_dynamics_get_standard (GimpContext *context)
if (! standard_dynamics)
{
standard_dynamics = gimp_dynamics_new (context, "Standard dynamics");
g_set_weak_pointer (&standard_dynamics,
gimp_dynamics_new (context, "Standard dynamics"));
gimp_data_clean (standard_dynamics);
gimp_data_make_internal (standard_dynamics, "gimp-dynamics-standard");
g_object_add_weak_pointer (G_OBJECT (standard_dynamics),
(gpointer *) &standard_dynamics);
}
return standard_dynamics;

View File

@ -411,13 +411,11 @@ gimp_gradient_get_standard (GimpContext *context)
if (! standard_gradient)
{
standard_gradient = gimp_gradient_new (context, "Standard");
g_set_weak_pointer (&standard_gradient,
gimp_gradient_new (context, "Standard"));
gimp_data_clean (standard_gradient);
gimp_data_make_internal (standard_gradient, "gimp-gradient-standard");
g_object_add_weak_pointer (G_OBJECT (standard_gradient),
(gpointer *) &standard_gradient);
}
return standard_gradient;

View File

@ -220,13 +220,11 @@ gimp_mybrush_get_standard (GimpContext *context)
if (! standard_mybrush)
{
standard_mybrush = gimp_mybrush_new (context, "Standard");
g_set_weak_pointer (&standard_mybrush,
gimp_mybrush_new (context, "Standard"));
gimp_data_clean (standard_mybrush);
gimp_data_make_internal (standard_mybrush, "gimp-mybrush-standard");
g_object_add_weak_pointer (G_OBJECT (standard_mybrush),
(gpointer *) &standard_mybrush);
}
return standard_mybrush;

View File

@ -294,13 +294,11 @@ gimp_palette_get_standard (GimpContext *context)
if (! standard_palette)
{
standard_palette = gimp_palette_new (context, "Standard");
g_set_weak_pointer (&standard_palette,
gimp_palette_new (context, "Standard"));
gimp_data_clean (standard_palette);
gimp_data_make_internal (standard_palette, "gimp-palette-standard");
g_object_add_weak_pointer (G_OBJECT (standard_palette),
(gpointer *) &standard_palette);
}
return standard_palette;

View File

@ -258,13 +258,11 @@ gimp_pattern_get_standard (GimpContext *context)
if (! standard_pattern)
{
standard_pattern = gimp_pattern_new (context, "Standard");
g_set_weak_pointer (&standard_pattern,
gimp_pattern_new (context, "Standard"));
gimp_data_clean (standard_pattern);
gimp_data_make_internal (standard_pattern, "gimp-pattern-standard");
g_object_add_weak_pointer (G_OBJECT (standard_pattern),
(gpointer *) &standard_pattern);
}
return standard_pattern;

View File

@ -155,9 +155,7 @@ about_dialog_create (GimpCoreConfig *config)
g_free (copyright);
g_free (version);
dialog.dialog = widget;
g_object_add_weak_pointer (G_OBJECT (widget), (gpointer) &dialog.dialog);
g_set_weak_pointer (&dialog.dialog, widget);
g_signal_connect (widget, "response",
G_CALLBACK (gtk_widget_destroy),
@ -467,8 +465,7 @@ about_dialog_add_update (GimpAboutDialog *dialog,
gtk_widget_show (box);
gtk_widget_show (frame);
dialog->update_frame = frame;
g_object_add_weak_pointer (G_OBJECT (frame), (gpointer) &dialog->update_frame);
g_set_weak_pointer (&dialog->update_frame, frame);
/* Reconstruct the dialog when release info changes. */
g_signal_connect (config, "notify::last-known-release",

View File

@ -191,10 +191,7 @@ preferences_dialog_create (Gimp *gimp)
G_CALLBACK (prefs_config_copy_notify),
config, 0);
prefs_dialog = prefs_dialog_new (gimp, config_copy);
g_object_add_weak_pointer (G_OBJECT (prefs_dialog),
(gpointer) &prefs_dialog);
g_set_weak_pointer (&prefs_dialog, prefs_dialog_new (gimp, config_copy));
g_object_set_data (G_OBJECT (prefs_dialog), "gimp", gimp);

View File

@ -107,9 +107,7 @@ gimp_canvas_canvas_boundary_finalize (GObject *object)
{
GimpCanvasCanvasBoundaryPrivate *private = GET_PRIVATE (object);
if (private->image)
g_object_remove_weak_pointer (G_OBJECT (private->image),
(gpointer) &private->image);
g_clear_weak_pointer (&private->image);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
@ -125,13 +123,7 @@ gimp_canvas_canvas_boundary_set_property (GObject *object,
switch (property_id)
{
case PROP_IMAGE:
if (private->image)
g_object_remove_weak_pointer (G_OBJECT (private->image),
(gpointer) &private->image);
private->image = g_value_get_object (value); /* don't ref */
if (private->image)
g_object_add_weak_pointer (G_OBJECT (private->image),
(gpointer) &private->image);
g_set_weak_pointer (&private->image, g_value_get_object (value));
break;
default:

View File

@ -120,9 +120,7 @@ gimp_canvas_layer_boundary_finalize (GObject *object)
GList *iter;
for (iter = private->layers; iter; iter = iter->next)
if (iter->data)
g_object_remove_weak_pointer (G_OBJECT (iter->data),
(gpointer) &iter->data);
g_clear_weak_pointer (&iter->data);
g_list_free (private->layers);
}
@ -144,23 +142,26 @@ gimp_canvas_layer_boundary_set_property (GObject *object,
if (private->layers)
{
GList *iter;
for (iter = private->layers; iter; iter = iter->next)
{
if (iter->data)
g_object_remove_weak_pointer (G_OBJECT (iter->data),
(gpointer) &iter->data);
}
g_clear_weak_pointer (&iter->data);
g_list_free (private->layers);
}
private->layers = g_list_copy (g_value_get_pointer (value));
if (private->layers)
{
GList *iter;
for (iter = private->layers; iter; iter = iter->next)
/* NOT g_set_weak_pointer() because the pointer is already set */
g_object_add_weak_pointer (G_OBJECT (iter->data),
(gpointer) &iter->data);
}
break;
case PROP_EDIT_MASK:
private->edit_mask = g_value_get_boolean (value);
break;

View File

@ -108,7 +108,8 @@ gimp_display_shell_rotate_dialog (GimpDisplayShell *shell)
data->shell = shell;
data->old_angle = shell->rotate_angle;
shell->rotate_dialog =
g_set_weak_pointer
(&shell->rotate_dialog,
gimp_viewable_dialog_new (g_list_prepend (NULL, image),
gimp_get_user_context (shell->display->gimp),
_("Rotate View"), "display-rotate",
@ -122,7 +123,7 @@ gimp_display_shell_rotate_dialog (GimpDisplayShell *shell)
_("_Cancel"), GTK_RESPONSE_CANCEL,
_("_OK"), GTK_RESPONSE_OK,
NULL);
NULL));
gimp_dialog_set_alternative_button_order (GTK_DIALOG (shell->rotate_dialog),
GTK_RESPONSE_OK,
@ -132,9 +133,6 @@ gimp_display_shell_rotate_dialog (GimpDisplayShell *shell)
g_object_weak_ref (G_OBJECT (shell->rotate_dialog),
(GWeakNotify) gimp_display_shell_rotate_dialog_free, data);
g_object_add_weak_pointer (G_OBJECT (shell->rotate_dialog),
(gpointer) &shell->rotate_dialog);
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (shell));
gtk_window_set_transient_for (GTK_WINDOW (shell->rotate_dialog),

View File

@ -109,7 +109,8 @@ gimp_display_shell_scale_dialog (GimpDisplayShell *shell)
"value", fabs (shell->other_scale),
NULL);
shell->scale_dialog =
g_set_weak_pointer
(&shell->scale_dialog,
gimp_viewable_dialog_new (g_list_prepend (NULL, image),
gimp_get_user_context (shell->display->gimp),
_("Zoom Ratio"), "display_scale",
@ -122,7 +123,7 @@ gimp_display_shell_scale_dialog (GimpDisplayShell *shell)
_("_Cancel"), GTK_RESPONSE_CANCEL,
_("_OK"), GTK_RESPONSE_OK,
NULL);
NULL));
gimp_dialog_set_alternative_button_order (GTK_DIALOG (shell->scale_dialog),
GTK_RESPONSE_OK,
@ -134,9 +135,6 @@ gimp_display_shell_scale_dialog (GimpDisplayShell *shell)
g_object_weak_ref (G_OBJECT (shell->scale_dialog),
(GWeakNotify) g_object_unref, data->model);
g_object_add_weak_pointer (G_OBJECT (shell->scale_dialog),
(gpointer) &shell->scale_dialog);
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (shell));
gtk_window_set_transient_for (GTK_WINDOW (shell->scale_dialog),

View File

@ -76,12 +76,7 @@ gimp_tool_dialog_dispose (GObject *object)
{
GimpToolDialogPrivate *private = GET_PRIVATE (object);
if (private->shell)
{
g_object_remove_weak_pointer (G_OBJECT (private->shell),
(gpointer) &private->shell);
private->shell = NULL;
}
g_clear_weak_pointer (&private->shell);
G_OBJECT_CLASS (gimp_tool_dialog_parent_class)->dispose (object);
}
@ -179,8 +174,6 @@ gimp_tool_dialog_set_shell (GimpToolDialog *tool_dialog,
if (private->shell)
{
g_object_remove_weak_pointer (G_OBJECT (private->shell),
(gpointer) &private->shell);
g_signal_handlers_disconnect_by_func (private->shell,
gimp_tool_dialog_shell_unmap,
tool_dialog);
@ -188,7 +181,7 @@ gimp_tool_dialog_set_shell (GimpToolDialog *tool_dialog,
gtk_window_set_transient_for (GTK_WINDOW (tool_dialog), NULL);
}
private->shell = shell;
g_set_weak_pointer (&private->shell, shell);
if (private->shell)
{
@ -200,8 +193,6 @@ gimp_tool_dialog_set_shell (GimpToolDialog *tool_dialog,
g_signal_connect_object (private->shell, "unmap",
G_CALLBACK (gimp_tool_dialog_shell_unmap),
tool_dialog, 0);
g_object_add_weak_pointer (G_OBJECT (private->shell),
(gpointer) &private->shell);
}
}

View File

@ -377,24 +377,16 @@ gimp_tool_gui_set_shell (GimpToolGui *gui,
return;
if (private->shell)
{
g_object_remove_weak_pointer (G_OBJECT (private->shell),
(gpointer) &private->shell);
g_signal_handlers_disconnect_by_func (private->shell->canvas,
gimp_tool_gui_canvas_resized,
gui);
}
private->shell = shell;
g_set_weak_pointer (&private->shell, shell);
if (private->shell)
{
g_signal_connect (private->shell->canvas, "size-allocate",
G_CALLBACK (gimp_tool_gui_canvas_resized),
gui);
g_object_add_weak_pointer (G_OBJECT (private->shell),
(gpointer) &private->shell);
}
gimp_tool_gui_update_shell (gui);
}
@ -428,11 +420,7 @@ gimp_tool_gui_set_viewables (GimpToolGui *gui,
if (private->viewables)
{
for (iter = private->viewables; iter; iter = iter->next)
{
if (iter->data)
g_object_remove_weak_pointer (G_OBJECT (iter->data),
(gpointer) &iter->data);
}
g_clear_weak_pointer (&iter->data);
g_list_free (private->viewables);
}
@ -442,6 +430,7 @@ gimp_tool_gui_set_viewables (GimpToolGui *gui,
if (private->viewables)
{
for (iter = private->viewables; iter; iter = iter->next)
/* NOT g_set_weak_pointer() because the pointer is alrerady set */
g_object_add_weak_pointer (G_OBJECT (iter->data),
(gpointer) &iter->data);
}

View File

@ -377,9 +377,8 @@ gimp_babl_get_builtin_color_profile (GimpImageBaseType base_type,
{
if (! linear_gray_profile)
{
linear_gray_profile = gimp_color_profile_new_d65_gray_linear ();
g_object_add_weak_pointer (G_OBJECT (linear_gray_profile),
(gpointer) &linear_gray_profile);
g_set_weak_pointer (&linear_gray_profile,
gimp_color_profile_new_d65_gray_linear ());
}
return linear_gray_profile;
@ -388,9 +387,8 @@ gimp_babl_get_builtin_color_profile (GimpImageBaseType base_type,
{
if (! gray_profile)
{
gray_profile = gimp_color_profile_new_d65_gray_srgb_trc ();
g_object_add_weak_pointer (G_OBJECT (gray_profile),
(gpointer) &gray_profile);
g_set_weak_pointer (&gray_profile,
gimp_color_profile_new_d65_gray_srgb_trc ());
}
return gray_profile;
@ -402,9 +400,8 @@ gimp_babl_get_builtin_color_profile (GimpImageBaseType base_type,
{
if (! linear_rgb_profile)
{
linear_rgb_profile = gimp_color_profile_new_rgb_srgb_linear ();
g_object_add_weak_pointer (G_OBJECT (linear_rgb_profile),
(gpointer) &linear_rgb_profile);
g_set_weak_pointer (&linear_rgb_profile,
gimp_color_profile_new_rgb_srgb_linear ());
}
return linear_rgb_profile;
@ -413,9 +410,8 @@ gimp_babl_get_builtin_color_profile (GimpImageBaseType base_type,
{
if (! srgb_profile)
{
srgb_profile = gimp_color_profile_new_rgb_srgb ();
g_object_add_weak_pointer (G_OBJECT (srgb_profile),
(gpointer) &srgb_profile);
g_set_weak_pointer (&srgb_profile,
gimp_color_profile_new_rgb_srgb ());
}
return srgb_profile;

View File

@ -223,6 +223,7 @@ gimp_ui_configurer_move_docks_to_columns (GimpUIConfigurer *ui_configurer,
dock_columns = gimp_image_window_get_right_docks (uber_image_window);
dock_container = GIMP_DOCK_CONTAINER (dock_window);
g_object_add_weak_pointer (G_OBJECT (dock_window),
(gpointer) &dock_window);

View File

@ -514,9 +514,9 @@ menus_get_global_menu_factory (Gimp *gimp)
if (global_menu_factory == NULL && ! created)
{
global_menu_factory = gimp_menu_factory_new (gimp, global_action_factory);
g_object_add_weak_pointer (G_OBJECT (global_menu_factory),
(gpointer *) &global_menu_factory);
g_set_weak_pointer (&global_menu_factory,
gimp_menu_factory_new (gimp, global_action_factory));
created = TRUE;
}

View File

@ -141,16 +141,8 @@ gimp_paintbrush_paint (GimpPaintCore *paint_core,
break;
case GIMP_PAINT_STATE_FINISH:
{
if (paintbrush->paint_buffer)
{
g_object_remove_weak_pointer (G_OBJECT (paintbrush->paint_buffer),
(gpointer) &paintbrush->paint_buffer);
paintbrush->paint_buffer = NULL;
}
g_clear_weak_pointer (&paintbrush->paint_buffer);
g_clear_pointer (&paintbrush->paint_pixmap, gimp_temp_buf_unref);
}
break;
}
}
@ -338,19 +330,7 @@ _gimp_paintbrush_motion (GimpPaintCore *paint_core,
(! paint_pixmap && (gimp_rgba_distance (&paint_color,
&paintbrush->paint_color))))
{
if (paint_buffer != paintbrush->paint_buffer)
{
if (paintbrush->paint_buffer)
{
g_object_remove_weak_pointer (G_OBJECT (paintbrush->paint_buffer),
(gpointer) &paintbrush->paint_buffer);
}
paintbrush->paint_buffer = paint_buffer;
g_object_add_weak_pointer (G_OBJECT (paintbrush->paint_buffer),
(gpointer) &paintbrush->paint_buffer);
}
g_set_weak_pointer (&paintbrush->paint_buffer, paint_buffer);
if (paint_pixmap != paintbrush->paint_pixmap)
{

View File

@ -92,9 +92,6 @@ gimp_paint_core_undo_constructed (GObject *object)
gimp_assert (GIMP_IS_PAINT_CORE (paint_core_undo->paint_core));
paint_core_undo->last_coords = paint_core_undo->paint_core->start_coords;
g_object_add_weak_pointer (G_OBJECT (paint_core_undo->paint_core),
(gpointer) &paint_core_undo->paint_core);
}
static void
@ -108,7 +105,8 @@ gimp_paint_core_undo_set_property (GObject *object,
switch (property_id)
{
case PROP_PAINT_CORE:
paint_core_undo->paint_core = g_value_get_object (value);
g_set_weak_pointer (&paint_core_undo->paint_core,
g_value_get_object (value));
break;
default:
@ -163,12 +161,7 @@ gimp_paint_core_undo_free (GimpUndo *undo,
{
GimpPaintCoreUndo *paint_core_undo = GIMP_PAINT_CORE_UNDO (undo);
if (paint_core_undo->paint_core)
{
g_object_remove_weak_pointer (G_OBJECT (paint_core_undo->paint_core),
(gpointer) &paint_core_undo->paint_core);
paint_core_undo->paint_core = NULL;
}
g_clear_weak_pointer (&paint_core_undo->paint_core);
GIMP_UNDO_CLASS (parent_class)->free (undo, undo_mode);
}

View File

@ -479,9 +479,7 @@ gimp_paint_options_dispose (GObject *object)
g_signal_handlers_disconnect_by_func (options->brush,
gimp_paint_options_brush_notify,
options);
g_object_remove_weak_pointer (G_OBJECT (options->brush),
(gpointer) &options->brush);
options->brush = NULL;
g_clear_weak_pointer (&options->brush);
}
G_OBJECT_CLASS (parent_class)->dispose (object);
@ -807,16 +805,12 @@ gimp_paint_options_brush_changed (GimpContext *context,
g_signal_handlers_disconnect_by_func (options->brush,
gimp_paint_options_brush_notify,
options);
g_object_remove_weak_pointer (G_OBJECT (options->brush),
(gpointer) &options->brush);
}
options->brush = brush;
g_set_weak_pointer (&options->brush, brush);
if (options->brush)
{
g_object_add_weak_pointer (G_OBJECT (options->brush),
(gpointer) &options->brush);
g_signal_connect_object (options->brush, "notify",
G_CALLBACK (gimp_paint_options_brush_notify),
options, 0);

View File

@ -335,15 +335,13 @@ gimp_font_get_standard (void)
if (! standard_font)
{
standard_font = g_object_new (GIMP_TYPE_FONT,
g_set_weak_pointer (&standard_font,
g_object_new (GIMP_TYPE_FONT,
"name", "Standard",
NULL);
NULL));;
gimp_data_clean (standard_font);
gimp_data_make_internal (standard_font, "gimp-font-standard");
g_object_add_weak_pointer (G_OBJECT (standard_font),
(gpointer *) &standard_font);
}
return standard_font;

View File

@ -648,18 +648,12 @@ gimp_crop_tool_image_changed (GimpCropTool *crop_tool,
g_signal_handlers_disconnect_by_func (crop_tool->current_image,
gimp_crop_tool_image_selected_layers_changed,
NULL);
g_object_remove_weak_pointer (G_OBJECT (crop_tool->current_image),
(gpointer) &crop_tool->current_image);
}
crop_tool->current_image = image;
g_set_weak_pointer (&crop_tool->current_image, image);
if (crop_tool->current_image)
{
g_object_add_weak_pointer (G_OBJECT (crop_tool->current_image),
(gpointer) &crop_tool->current_image);
g_signal_connect_object (crop_tool->current_image, "size-changed",
G_CALLBACK (gimp_crop_tool_image_size_changed),
crop_tool,
@ -699,8 +693,7 @@ gimp_crop_tool_image_selected_layers_changed (GimpCropTool *crop_tool)
gimp_crop_tool_layer_size_changed,
NULL);
g_object_remove_weak_pointer (G_OBJECT (iter->data),
(gpointer) &iter->data);
g_clear_weak_pointer (&iter->data);
}
}
g_list_free (crop_tool->current_layers);
@ -721,6 +714,7 @@ gimp_crop_tool_image_selected_layers_changed (GimpCropTool *crop_tool)
{
for (iter = crop_tool->current_layers; iter; iter = iter->next)
{
/* NOT g_set_weak_pointer() because the pointer is already set */
g_object_add_weak_pointer (G_OBJECT (iter->data),
(gpointer) &iter->data);

View File

@ -493,13 +493,10 @@ gimp_curves_tool_dialog (GimpFilterTool *filter_tool)
store = gimp_enum_store_new_with_range (GIMP_TYPE_HISTOGRAM_CHANNEL,
GIMP_HISTOGRAM_VALUE,
GIMP_HISTOGRAM_ALPHA);
tool->channel_menu =
gimp_enum_combo_box_new_with_model (GIMP_ENUM_STORE (store));
g_set_weak_pointer (&tool->channel_menu,
gimp_enum_combo_box_new_with_model (GIMP_ENUM_STORE (store)));
g_object_unref (store);
g_object_add_weak_pointer (G_OBJECT (tool->channel_menu),
(gpointer) &tool->channel_menu);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (tool->channel_menu),
config->channel);
gimp_enum_combo_box_set_icon_prefix (GIMP_ENUM_COMBO_BOX (tool->channel_menu),
@ -568,10 +565,7 @@ gimp_curves_tool_dialog (GimpFilterTool *filter_tool)
gtk_grid_attach (GTK_GRID (grid), frame, 1, 0, 1, 1);
gtk_widget_show (frame);
tool->graph = gimp_curve_view_new ();
g_object_add_weak_pointer (G_OBJECT (tool->graph),
(gpointer) &tool->graph);
g_set_weak_pointer (&tool->graph, gimp_curve_view_new ());
gimp_curve_view_set_range_x (GIMP_CURVE_VIEW (tool->graph), 0, 255);
gimp_curve_view_set_range_y (GIMP_CURVE_VIEW (tool->graph), 0, 255);

View File

@ -387,8 +387,7 @@ gimp_filter_tool_controller_free (Controller *controller)
{
g_signal_handlers_disconnect_by_data (controller->widget, controller);
g_object_remove_weak_pointer (G_OBJECT (controller->widget),
(gpointer) &controller->widget);
g_clear_weak_pointer (&controller->widget);
}
g_slice_free (Controller, controller);

View File

@ -94,9 +94,6 @@ gimp_foreground_select_tool_undo_constructed (GObject *object)
fg_select_tool_undo = GIMP_FOREGROUND_SELECT_TOOL_UNDO (object);
gimp_assert (GIMP_IS_FOREGROUND_SELECT_TOOL (fg_select_tool_undo->foreground_select_tool));
g_object_add_weak_pointer (G_OBJECT (fg_select_tool_undo->foreground_select_tool),
(gpointer) &fg_select_tool_undo->foreground_select_tool);
}
static void
@ -111,7 +108,8 @@ gimp_foreground_select_tool_undo_set_property (GObject *object,
switch (property_id)
{
case PROP_FOREGROUND_SELECT_TOOL:
fg_select_tool_undo->foreground_select_tool = g_value_get_object (value);
g_set_weak_pointer (&fg_select_tool_undo->foreground_select_tool,
g_value_get_object (value));
break;
default:
@ -155,12 +153,7 @@ gimp_foreground_select_tool_undo_free (GimpUndo *undo,
{
GimpForegroundSelectToolUndo *fg_select_tool_undo = GIMP_FOREGROUND_SELECT_TOOL_UNDO (undo);
if (fg_select_tool_undo->foreground_select_tool)
{
g_object_remove_weak_pointer (G_OBJECT (fg_select_tool_undo->foreground_select_tool),
(gpointer) &fg_select_tool_undo->foreground_select_tool);
fg_select_tool_undo->foreground_select_tool = NULL;
}
g_clear_weak_pointer (&fg_select_tool_undo->foreground_select_tool);
GIMP_UNDO_CLASS (parent_class)->free (undo, undo_mode);
}

View File

@ -374,13 +374,10 @@ gimp_levels_tool_dialog (GimpFilterTool *filter_tool)
store = gimp_enum_store_new_with_range (GIMP_TYPE_HISTOGRAM_CHANNEL,
GIMP_HISTOGRAM_VALUE,
GIMP_HISTOGRAM_ALPHA);
tool->channel_menu =
gimp_enum_combo_box_new_with_model (GIMP_ENUM_STORE (store));
g_set_weak_pointer (&tool->channel_menu,
gimp_enum_combo_box_new_with_model (GIMP_ENUM_STORE (store)));
g_object_unref (store);
g_object_add_weak_pointer (G_OBJECT (tool->channel_menu),
(gpointer) &tool->channel_menu);
gimp_enum_combo_box_set_icon_prefix (GIMP_ENUM_COMBO_BOX (tool->channel_menu),
"gimp-channel");
gimp_int_combo_box_set_sensitivity (GIMP_INT_COMBO_BOX (tool->channel_menu),
@ -436,10 +433,8 @@ gimp_levels_tool_dialog (GimpFilterTool *filter_tool)
gtk_container_add (GTK_CONTAINER (frame), vbox2);
gtk_widget_show (vbox2);
tool->histogram_view = gimp_histogram_view_new (FALSE);
g_object_add_weak_pointer (G_OBJECT (tool->histogram_view),
(gpointer) &tool->histogram_view);
g_set_weak_pointer (&tool->histogram_view,
gimp_histogram_view_new (FALSE));
gtk_box_pack_start (GTK_BOX (vbox2), tool->histogram_view, TRUE, TRUE, 0);
gtk_widget_show (GTK_WIDGET (tool->histogram_view));

View File

@ -265,9 +265,8 @@ gimp_measure_tool_button_press (GimpTool *tool,
if (options->use_info_window ||
! gimp_display_shell_get_show_statusbar (shell))
{
measure->gui = gimp_measure_tool_dialog_new (measure);
g_object_add_weak_pointer (G_OBJECT (measure->gui),
(gpointer) &measure->gui);
g_set_weak_pointer (&measure->gui,
gimp_measure_tool_dialog_new (measure));
}
}

View File

@ -881,16 +881,14 @@ gimp_rectangle_options_gui (GimpToolOptions *tool_options)
size_group = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL);
/* Fixed aspect entry/buttons */
private->fixed_aspect_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
g_set_weak_pointer (&private->fixed_aspect_hbox,
gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2));
gtk_box_pack_start (GTK_BOX (vbox2), private->fixed_aspect_hbox,
FALSE, FALSE, 0);
gtk_size_group_add_widget (size_group, private->fixed_aspect_hbox);
g_object_unref (size_group);
/* don't show */
g_object_add_weak_pointer (G_OBJECT (private->fixed_aspect_hbox),
(gpointer) &private->fixed_aspect_hbox);
entry = gimp_prop_number_pair_entry_new (config,
"aspect-numerator",
"aspect-denominator",
@ -915,15 +913,12 @@ gimp_rectangle_options_gui (GimpToolOptions *tool_options)
entry,
private->aspect_history);
private->aspect_button_box =
g_set_weak_pointer (&private->aspect_button_box,
gimp_prop_enum_icon_box_new (G_OBJECT (entry),
"aspect", "gimp", -1, -1);
"aspect", "gimp", -1, -1));
gtk_box_pack_start (GTK_BOX (private->fixed_aspect_hbox),
private->aspect_button_box, FALSE, FALSE, 0);
g_object_add_weak_pointer (G_OBJECT (private->aspect_button_box),
(gpointer) &private->aspect_button_box);
/* hide "square" */
children =
gtk_container_get_children (GTK_CONTAINER (private->aspect_button_box));
@ -931,41 +926,37 @@ gimp_rectangle_options_gui (GimpToolOptions *tool_options)
g_list_free (children);
/* Fixed width entry */
private->fixed_width_entry =
g_set_weak_pointer (&private->fixed_width_entry,
gimp_prop_size_entry_new (config,
"desired-fixed-width", TRUE, "fixed-unit", "%a",
GIMP_SIZE_ENTRY_UPDATE_SIZE, 300);
"desired-fixed-width",
TRUE, "fixed-unit", "%a",
GIMP_SIZE_ENTRY_UPDATE_SIZE,
300));
gtk_box_pack_start (GTK_BOX (vbox2), private->fixed_width_entry,
FALSE, FALSE, 0);
gtk_size_group_add_widget (size_group, private->fixed_width_entry);
gtk_widget_hide (private->fixed_width_entry);
g_object_add_weak_pointer (G_OBJECT (private->fixed_width_entry),
(gpointer) &private->fixed_width_entry);
/* Fixed height entry */
private->fixed_height_entry =
g_set_weak_pointer (&private->fixed_height_entry,
gimp_prop_size_entry_new (config,
"desired-fixed-height", TRUE, "fixed-unit", "%a",
GIMP_SIZE_ENTRY_UPDATE_SIZE, 300);
"desired-fixed-height",
TRUE, "fixed-unit", "%a",
GIMP_SIZE_ENTRY_UPDATE_SIZE,
300));
gtk_box_pack_start (GTK_BOX (vbox2), private->fixed_height_entry,
FALSE, FALSE, 0);
gtk_size_group_add_widget (size_group, private->fixed_height_entry);
gtk_widget_hide (private->fixed_height_entry);
g_object_add_weak_pointer (G_OBJECT (private->fixed_height_entry),
(gpointer) &private->fixed_height_entry);
/* Fixed size entry */
private->fixed_size_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
g_set_weak_pointer (&private->fixed_size_hbox,
gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2));
gtk_box_pack_start (GTK_BOX (vbox2), private->fixed_size_hbox,
FALSE, FALSE, 0);
gtk_size_group_add_widget (size_group, private->fixed_size_hbox);
gtk_widget_hide (private->fixed_size_hbox);
g_object_add_weak_pointer (G_OBJECT (private->fixed_size_hbox),
(gpointer) &private->fixed_size_hbox);
entry = gimp_prop_number_pair_entry_new (config,
"desired-fixed-size-width",
"desired-fixed-size-height",
@ -1040,15 +1031,13 @@ gimp_rectangle_options_gui (GimpToolOptions *tool_options)
gtk_box_pack_start (GTK_BOX (vbox), combo, FALSE, FALSE, 0);
/* Auto Shrink */
private->auto_shrink_button = gtk_button_new_with_label (_("Auto Shrink"));
g_set_weak_pointer (&private->auto_shrink_button,
gtk_button_new_with_label (_("Auto Shrink")));
gtk_box_pack_start (GTK_BOX (vbox), private->auto_shrink_button,
FALSE, FALSE, 0);
gtk_widget_set_sensitive (private->auto_shrink_button, FALSE);
gtk_widget_show (private->auto_shrink_button);
g_object_add_weak_pointer (G_OBJECT (private->auto_shrink_button),
(gpointer) &private->auto_shrink_button);
button = gimp_prop_check_button_new (config, "shrink-merged", NULL);
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);

View File

@ -78,9 +78,6 @@ static gboolean gimp_selection_tool_check (GimpSelectionTool *s
static gboolean gimp_selection_tool_have_selection (GimpSelectionTool *sel_tool,
GimpDisplay *display);
static void gimp_selection_tool_set_undo_ptr (GimpUndo **undo_ptr,
GimpUndo *undo);
G_DEFINE_TYPE (GimpSelectionTool, gimp_selection_tool, GIMP_TYPE_DRAW_TOOL)
@ -477,7 +474,7 @@ static void
gimp_selection_tool_commit (GimpSelectionTool *sel_tool)
{
/* make sure gimp_selection_tool_halt() doesn't undo the change, if any */
gimp_selection_tool_set_undo_ptr (&sel_tool->undo, NULL);
g_clear_weak_pointer (&sel_tool->undo);
}
static void
@ -509,8 +506,8 @@ gimp_selection_tool_halt (GimpSelectionTool *sel_tool,
}
/* reset the automatic undo/redo mechanism */
gimp_selection_tool_set_undo_ptr (&sel_tool->undo, NULL);
gimp_selection_tool_set_undo_ptr (&sel_tool->redo, NULL);
g_clear_weak_pointer (&sel_tool->undo);
g_clear_weak_pointer (&sel_tool->redo);
}
}
@ -604,25 +601,6 @@ gimp_selection_tool_have_selection (GimpSelectionTool *sel_tool,
display);
}
static void
gimp_selection_tool_set_undo_ptr (GimpUndo **undo_ptr,
GimpUndo *undo)
{
if (*undo_ptr)
{
g_object_remove_weak_pointer (G_OBJECT (*undo_ptr),
(gpointer *) undo_ptr);
}
*undo_ptr = undo;
if (*undo_ptr)
{
g_object_add_weak_pointer (G_OBJECT (*undo_ptr),
(gpointer *) undo_ptr);
}
}
/* public functions */
@ -730,7 +708,7 @@ gimp_selection_tool_start_change (GimpSelectionTool *sel_tool,
if (create)
{
gimp_selection_tool_set_undo_ptr (&sel_tool->undo, NULL);
g_clear_weak_pointer (&sel_tool->undo);
}
else
{
@ -748,11 +726,10 @@ gimp_selection_tool_start_change (GimpSelectionTool *sel_tool,
gimp_tool_control_pop_preserve (tool->control);
gimp_selection_tool_set_undo_ptr (&sel_tool->undo, NULL);
g_clear_weak_pointer (&sel_tool->undo);
/* we will need to redo if the user cancels or executes */
gimp_selection_tool_set_undo_ptr (
&sel_tool->redo,
g_set_weak_pointer (&sel_tool->redo,
gimp_undo_stack_peek (redo_stack));
}
@ -772,8 +749,7 @@ gimp_selection_tool_start_change (GimpSelectionTool *sel_tool,
}
}
gimp_selection_tool_set_undo_ptr (
&sel_tool->undo,
g_set_weak_pointer (&sel_tool->undo,
gimp_undo_stack_peek (undo_stack));
}
@ -814,13 +790,12 @@ gimp_selection_tool_end_change (GimpSelectionTool *sel_tool,
gimp_tool_control_pop_preserve (tool->control);
gimp_selection_tool_set_undo_ptr (
&sel_tool->undo,
g_set_weak_pointer (&sel_tool->undo,
gimp_undo_stack_peek (undo_stack));
}
else
{
gimp_selection_tool_set_undo_ptr (&sel_tool->undo, NULL);
g_clear_weak_pointer (&sel_tool->undo);
}
}
else
@ -831,12 +806,12 @@ gimp_selection_tool_end_change (GimpSelectionTool *sel_tool,
* we actually selected something
*/
if (undo && undo != sel_tool->undo)
gimp_selection_tool_set_undo_ptr (&sel_tool->undo, undo);
g_set_weak_pointer (&sel_tool->undo, undo);
else
gimp_selection_tool_set_undo_ptr (&sel_tool->undo, NULL);
g_clear_weak_pointer (&sel_tool->undo);
}
gimp_selection_tool_set_undo_ptr (&sel_tool->redo, NULL);
g_clear_weak_pointer (&sel_tool->redo);
if (sel_tool->idle_id)
{

View File

@ -1354,15 +1354,13 @@ gimp_text_tool_editor_dialog (GimpTextTool *text_tool)
if (text_tool->image)
gimp_image_get_resolution (text_tool->image, &xres, &yres);
text_tool->editor_dialog =
g_set_weak_pointer
(&text_tool->editor_dialog,
gimp_text_options_editor_new (parent, tool->tool_info->gimp, options,
menus_get_global_menu_factory (tool->tool_info->gimp),
_("GIMP Text Editor"),
text_tool->proxy, text_tool->buffer,
xres, yres);
g_object_add_weak_pointer (G_OBJECT (text_tool->editor_dialog),
(gpointer) &text_tool->editor_dialog);
xres, yres));
gimp_dialog_factory_add_foreign (dialog_factory,
"gimp-text-tool-dialog",

View File

@ -1848,12 +1848,9 @@ gimp_text_tool_set_image (GimpTextTool *text_tool,
g_signal_handlers_disconnect_by_func (text_tool->image,
gimp_text_tool_layer_changed,
text_tool);
g_object_remove_weak_pointer (G_OBJECT (text_tool->image),
(gpointer) &text_tool->image);
}
text_tool->image = image;
g_set_weak_pointer (&text_tool->image, image);
if (image)
{
@ -1861,9 +1858,6 @@ gimp_text_tool_set_image (GimpTextTool *text_tool,
gdouble xres;
gdouble yres;
g_object_add_weak_pointer (G_OBJECT (text_tool->image),
(gpointer) &text_tool->image);
g_signal_connect_object (text_tool->image, "selected-layers-changed",
G_CALLBACK (gimp_text_tool_layer_changed),
text_tool, 0);

View File

@ -780,6 +780,8 @@ gimp_transform_grid_tool_draw (GimpDrawTool *draw_tool)
tr_tool->x2,
tr_tool->y2);
tg_tool->previews = g_list_prepend (tg_tool->previews, preview);
/* NOT g_set_weak_pointr() because the pointer is already set */
g_object_add_weak_pointer (G_OBJECT (tg_tool->previews->data),
(gpointer) &tg_tool->previews->data);
}
@ -800,13 +802,12 @@ gimp_transform_grid_tool_draw (GimpDrawTool *draw_tool)
if (segs_in)
{
tg_tool->boundary_in =
g_set_weak_pointer
(&tg_tool->boundary_in,
gimp_draw_tool_add_boundary (draw_tool,
segs_in, n_segs_in,
&matrix,
0, 0);
g_object_add_weak_pointer (G_OBJECT (tg_tool->boundary_in),
(gpointer) &tg_tool->boundary_in);
0, 0));
gimp_canvas_item_set_visible (tg_tool->boundary_in,
tr_tool->transform_valid);
@ -814,13 +815,12 @@ gimp_transform_grid_tool_draw (GimpDrawTool *draw_tool)
if (segs_out)
{
tg_tool->boundary_out =
g_set_weak_pointer
(&tg_tool->boundary_out,
gimp_draw_tool_add_boundary (draw_tool,
segs_out, n_segs_out,
&matrix,
0, 0);
g_object_add_weak_pointer (G_OBJECT (tg_tool->boundary_out),
(gpointer) &tg_tool->boundary_out);
0, 0));
gimp_canvas_item_set_visible (tg_tool->boundary_out,
tr_tool->transform_valid);

View File

@ -105,9 +105,6 @@ gimp_transform_grid_tool_undo_constructed (GObject *object)
if (tg_tool->original)
tg_tool_undo->original = tile_manager_ref (tg_tool->original);
#endif
g_object_add_weak_pointer (G_OBJECT (tg_tool_undo->tg_tool),
(gpointer) &tg_tool_undo->tg_tool);
}
static void
@ -121,7 +118,8 @@ gimp_transform_grid_tool_undo_set_property (GObject *object,
switch (property_id)
{
case PROP_TRANSFORM_TOOL:
tg_tool_undo->tg_tool = g_value_get_object (value);
g_set_weak_pointer (&tg_tool_undo->tg_tool,
g_value_get_object (value));
break;
default:
@ -203,12 +201,7 @@ gimp_transform_grid_tool_undo_free (GimpUndo *undo,
{
GimpTransformGridToolUndo *tg_tool_undo = GIMP_TRANSFORM_GRID_TOOL_UNDO (undo);
if (tg_tool_undo->tg_tool)
{
g_object_remove_weak_pointer (G_OBJECT (tg_tool_undo->tg_tool),
(gpointer) &tg_tool_undo->tg_tool);
tg_tool_undo->tg_tool = NULL;
}
g_clear_weak_pointer (&tg_tool_undo->tg_tool);
#if 0
if (tg_tool_undo->original)

View File

@ -382,14 +382,12 @@ gimp_warp_options_gui (GimpToolOptions *tool_options)
gimp_spin_scale_set_scale_limits (GIMP_SPIN_SCALE (scale), 3.0, 100.0);
gtk_box_pack_start (GTK_BOX (vbox2), scale, FALSE, FALSE, 0);
options->animate_button = gtk_button_new_with_label (_("Create Animation"));
g_set_weak_pointer (&options->animate_button,
gtk_button_new_with_label (_("Create Animation")));
gtk_widget_set_sensitive (options->animate_button, FALSE);
gtk_box_pack_start (GTK_BOX (vbox2), options->animate_button,
FALSE, FALSE, 0);
gtk_widget_show (options->animate_button);
g_object_add_weak_pointer (G_OBJECT (options->animate_button),
(gpointer) &options->animate_button);
return vbox;
}

View File

@ -710,8 +710,6 @@ gimp_color_dialog_image_changed (GimpContext *context,
{
if (dialog->active_image)
{
g_object_remove_weak_pointer (G_OBJECT (dialog->active_image),
(gpointer) &dialog->active_image);
g_signal_handlers_disconnect_by_func (dialog->active_image,
G_CALLBACK (gimp_color_dialog_update),
dialog);
@ -719,11 +717,11 @@ gimp_color_dialog_image_changed (GimpContext *context,
gimp_color_dialog_update_simulation,
dialog);
}
dialog->active_image = image;
g_set_weak_pointer (&dialog->active_image, image);
if (image)
{
g_object_add_weak_pointer (G_OBJECT (dialog->active_image),
(gpointer) &dialog->active_image);
g_signal_connect_swapped (image, "notify::base-type",
G_CALLBACK (gimp_color_dialog_update),
dialog);
@ -739,6 +737,7 @@ gimp_color_dialog_image_changed (GimpContext *context,
gimp_color_dialog_update_simulation (image, dialog);
}
gimp_color_dialog_update (dialog);
}
}

View File

@ -349,12 +349,7 @@ gimp_color_display_editor_dispose (GObject *object)
{
GimpColorDisplayEditor *editor = GIMP_COLOR_DISPLAY_EDITOR (object);
if (editor->selected)
{
g_object_remove_weak_pointer (G_OBJECT (editor->selected),
(gpointer) &editor->selected);
editor->selected = NULL;
}
g_clear_weak_pointer (&editor->selected);
g_clear_object (&editor->stack);
g_clear_object (&editor->config);
@ -547,12 +542,7 @@ gimp_color_display_editor_dest_changed (GtkTreeSelection *sel,
GimpColorDisplay *display = NULL;
gchar *tip = NULL;
if (editor->selected)
{
g_object_remove_weak_pointer (G_OBJECT (editor->selected),
(gpointer) &editor->selected);
editor->selected = NULL;
}
g_clear_weak_pointer (&editor->selected);
if (gtk_tree_selection_get_selected (sel, &model, &iter))
{
@ -580,10 +570,7 @@ gimp_color_display_editor_dest_changed (GtkTreeSelection *sel,
if (display)
{
editor->selected = display;
g_object_add_weak_pointer (G_OBJECT (display),
(gpointer) &editor->selected);
g_set_weak_pointer (&editor->selected, display);
editor->config_widget = gimp_color_display_configure (display);

View File

@ -721,8 +721,6 @@ gimp_colormap_selection_image_changed (GimpColormapSelection *selection,
{
if (selection->active_image)
{
g_object_remove_weak_pointer (G_OBJECT (selection->active_image),
(gpointer) &selection->active_image);
g_signal_handlers_disconnect_by_func (selection->active_image,
G_CALLBACK (gtk_widget_queue_draw),
selection);
@ -758,11 +756,11 @@ gimp_colormap_selection_image_changed (GimpColormapSelection *selection,
}
}
}
selection->active_image = image;
g_set_weak_pointer (&selection->active_image, image);
if (image)
{
g_object_add_weak_pointer (G_OBJECT (selection->active_image),
(gpointer) &selection->active_image);
g_signal_connect_swapped (image, "colormap-changed",
G_CALLBACK (gtk_widget_queue_draw),
selection);
@ -770,6 +768,7 @@ gimp_colormap_selection_image_changed (GimpColormapSelection *selection,
G_CALLBACK (gimp_colormap_selection_set_palette),
selection);
}
gimp_colormap_selection_set_palette (selection);
gtk_widget_queue_draw (GTK_WIDGET (selection));
}
@ -786,25 +785,22 @@ gimp_colormap_selection_set_palette (GimpColormapSelection *selection)
{
if (selection->active_palette)
{
g_object_remove_weak_pointer (G_OBJECT (selection->active_palette),
(gpointer) &selection->active_palette);
g_signal_handlers_disconnect_by_func (selection->active_palette,
G_CALLBACK (gtk_widget_queue_draw),
selection);
gimp_view_set_viewable (GIMP_VIEW (selection->view), NULL);
gtk_adjustment_set_upper (selection->index_adjustment, 0);
}
selection->active_palette = palette;
g_set_weak_pointer (&selection->active_palette, palette);
if (palette)
{
g_object_add_weak_pointer (G_OBJECT (selection->active_palette),
(gpointer) &selection->active_palette);
g_signal_connect_swapped (palette, "dirty",
G_CALLBACK (gtk_widget_queue_draw),
selection);
gimp_view_set_viewable (GIMP_VIEW (selection->view),
GIMP_VIEWABLE (palette));
gtk_adjustment_set_upper (selection->index_adjustment,
gimp_image_get_colormap_size (selection->active_image) - 1);
}

View File

@ -224,12 +224,7 @@ gimp_container_entry_finalize (GObject *object)
{
GimpContainerEntry *entry = GIMP_CONTAINER_ENTRY (object);
if (entry->viewable)
{
g_object_remove_weak_pointer (G_OBJECT (entry->viewable),
(gpointer) &entry->viewable);
entry->viewable = NULL;
}
g_clear_weak_pointer (&entry->viewable);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
@ -331,19 +326,10 @@ gimp_container_entry_select_items (GimpContainerView *view,
gimp_container_entry_changed,
view);
if (container_entry->viewable)
{
g_object_remove_weak_pointer (G_OBJECT (container_entry->viewable),
(gpointer) &container_entry->viewable);
container_entry->viewable = NULL;
}
g_set_weak_pointer (&container_entry->viewable, viewable);
if (viewable)
{
container_entry->viewable = viewable;
g_object_add_weak_pointer (G_OBJECT (container_entry->viewable),
(gpointer) &container_entry->viewable);
gtk_entry_set_icon_from_icon_name (entry,
GTK_ENTRY_ICON_SECONDARY,
NULL);
@ -415,24 +401,14 @@ gimp_container_entry_changed (GtkEntry *entry,
if (! container)
return;
if (container_entry->viewable)
{
g_object_remove_weak_pointer (G_OBJECT (container_entry->viewable),
(gpointer) &container_entry->viewable);
container_entry->viewable = NULL;
}
text = gtk_entry_get_text (entry);
object = gimp_container_get_child_by_name (container, text);
if (object)
{
container_entry->viewable = GIMP_VIEWABLE (object);
g_object_add_weak_pointer (G_OBJECT (container_entry->viewable),
(gpointer) &container_entry->viewable);
g_set_weak_pointer (&container_entry->viewable, GIMP_VIEWABLE (object));
gimp_container_view_item_selected (view, GIMP_VIEWABLE (object));
if (container_entry->viewable)
{
gimp_container_view_item_selected (view, container_entry->viewable);
gtk_entry_set_icon_from_icon_name (entry,
GTK_ENTRY_ICON_SECONDARY,

View File

@ -648,7 +648,8 @@ gimp_controller_editor_edit_clicked (GtkWidget *button,
title = g_strdup_printf (_("Select Action for Event '%s'"),
event_blurb);
editor->edit_dialog =
g_set_weak_pointer
(&editor->edit_dialog,
gimp_viewable_dialog_new (g_list_prepend (NULL, editor->info), editor->context,
_("Select Controller Event Action"),
"gimp-controller-action-dialog",
@ -661,7 +662,7 @@ gimp_controller_editor_edit_clicked (GtkWidget *button,
_("_Cancel"), GTK_RESPONSE_CANCEL,
_("_OK"), GTK_RESPONSE_OK,
NULL);
NULL));
g_free (title);
@ -670,9 +671,6 @@ gimp_controller_editor_edit_clicked (GtkWidget *button,
GTK_RESPONSE_CANCEL,
-1);
g_object_add_weak_pointer (G_OBJECT (editor->edit_dialog),
(gpointer) &editor->edit_dialog);
gimp_dialog_factory_add_foreign (gimp_dialog_factory_get_singleton (),
"gimp-controller-action-dialog",
editor->edit_dialog,
@ -693,10 +691,9 @@ gimp_controller_editor_edit_clicked (GtkWidget *button,
G_CALLBACK (gimp_controller_editor_edit_activated),
editor);
editor->edit_sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (GIMP_ACTION_EDITOR (view)->view));
g_object_add_weak_pointer (G_OBJECT (editor->edit_sel),
(gpointer) &editor->edit_sel);
g_set_weak_pointer
(&editor->edit_sel,
gtk_tree_view_get_selection (GTK_TREE_VIEW (GIMP_ACTION_EDITOR (view)->view)));
gtk_widget_set_sensitive (GTK_WIDGET (editor), FALSE);
gtk_widget_show (editor->edit_dialog);

View File

@ -238,7 +238,7 @@ gimp_controller_list_init (GimpControllerList *list)
gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
gtk_widget_show (vbox);
list->add_button = gtk_button_new ();
g_set_weak_pointer (&list->add_button, gtk_button_new ());
gtk_box_pack_start (GTK_BOX (vbox), list->add_button, TRUE, FALSE, 0);
gtk_widget_set_sensitive (list->add_button, FALSE);
gtk_widget_show (list->add_button);
@ -252,10 +252,7 @@ gimp_controller_list_init (GimpControllerList *list)
G_CALLBACK (gimp_controller_list_add_clicked),
list);
g_object_add_weak_pointer (G_OBJECT (list->add_button),
(gpointer) &list->add_button);
list->remove_button = gtk_button_new ();
g_set_weak_pointer (&list->remove_button, gtk_button_new ());
gtk_box_pack_start (GTK_BOX (vbox), list->remove_button, TRUE, FALSE, 0);
gtk_widget_set_sensitive (list->remove_button, FALSE);
gtk_widget_show (list->remove_button);
@ -269,9 +266,6 @@ gimp_controller_list_init (GimpControllerList *list)
G_CALLBACK (gimp_controller_list_remove_clicked),
list);
g_object_add_weak_pointer (G_OBJECT (list->remove_button),
(gpointer) &list->remove_button);
gtk_icon_size_lookup (icon_size, &icon_width, &icon_height);
list->dest = gimp_container_tree_view_new (NULL, NULL, icon_height, 0);
gimp_container_tree_view_set_main_column_title (GIMP_CONTAINER_TREE_VIEW (list->dest),

View File

@ -187,26 +187,9 @@ gimp_dock_columns_dispose (GObject *object)
g_object_unref (dock);
}
if (dock_columns->p->context)
{
g_object_remove_weak_pointer (G_OBJECT (dock_columns->p->context),
(gpointer) &dock_columns->p->context);
dock_columns->p->context = NULL;
}
if (dock_columns->p->dialog_factory)
{
g_object_remove_weak_pointer (G_OBJECT (dock_columns->p->dialog_factory),
(gpointer) &dock_columns->p->dialog_factory);
dock_columns->p->dialog_factory = NULL;
}
if (dock_columns->p->ui_manager)
{
g_object_remove_weak_pointer (G_OBJECT (dock_columns->p->ui_manager),
(gpointer)&dock_columns->p->ui_manager);
dock_columns->p->ui_manager = NULL;
}
g_clear_weak_pointer (&dock_columns->p->context);
g_clear_weak_pointer (&dock_columns->p->dialog_factory);
g_clear_weak_pointer (&dock_columns->p->ui_manager);
G_OBJECT_CLASS (parent_class)->dispose (object);
}
@ -222,33 +205,18 @@ gimp_dock_columns_set_property (GObject *object,
switch (property_id)
{
case PROP_CONTEXT:
if (dock_columns->p->context)
g_object_remove_weak_pointer (G_OBJECT (dock_columns->p->context),
(gpointer) &dock_columns->p->context);
dock_columns->p->context = g_value_get_object (value);
if (dock_columns->p->context)
g_object_add_weak_pointer (G_OBJECT (dock_columns->p->context),
(gpointer) &dock_columns->p->context);
g_set_weak_pointer (&dock_columns->p->context,
g_value_get_object (value));
break;
case PROP_DIALOG_FACTORY:
if (dock_columns->p->dialog_factory)
g_object_remove_weak_pointer (G_OBJECT (dock_columns->p->dialog_factory),
(gpointer) &dock_columns->p->dialog_factory);
dock_columns->p->dialog_factory = g_value_get_object (value);
if (dock_columns->p->dialog_factory)
g_object_add_weak_pointer (G_OBJECT (dock_columns->p->dialog_factory),
(gpointer) &dock_columns->p->dialog_factory);
g_set_weak_pointer (&dock_columns->p->dialog_factory,
g_value_get_object (value));
break;
case PROP_UI_MANAGER:
if (dock_columns->p->ui_manager)
g_object_remove_weak_pointer (G_OBJECT (dock_columns->p->ui_manager),
(gpointer) &dock_columns->p->ui_manager);
dock_columns->p->ui_manager = g_value_get_object (value);
if (dock_columns->p->ui_manager)
g_object_add_weak_pointer (G_OBJECT (dock_columns->p->ui_manager),
(gpointer) &dock_columns->p->ui_manager);
g_set_weak_pointer (&dock_columns->p->ui_manager,
g_value_get_object (value));
break;
default:

View File

@ -240,12 +240,11 @@ gimp_editor_constructed (GObject *object)
if (editor->priv->menu_factory && editor->priv->menu_identifier)
{
editor->priv->ui_manager =
g_set_weak_pointer
(&editor->priv->ui_manager,
gimp_menu_factory_get_manager (editor->priv->menu_factory,
editor->priv->menu_identifier,
editor->priv->popup_data);
g_object_add_weak_pointer (G_OBJECT (editor->priv->ui_manager),
(gpointer) &editor->priv->ui_manager);
editor->priv->popup_data));
g_signal_connect_object (editor->priv->ui_manager->gimp->config,
"notify::theme",
@ -268,17 +267,9 @@ gimp_editor_dispose (GObject *object)
GimpEditor *editor = GIMP_EDITOR (object);
g_clear_object (&editor->priv->menu_factory);
g_clear_pointer (&editor->priv->menu_identifier, g_free);
g_clear_pointer (&editor->priv->ui_path, g_free);
if (editor->priv->ui_manager)
{
g_object_remove_weak_pointer (G_OBJECT (editor->priv->ui_manager),
(gpointer) &editor->priv->ui_manager);
editor->priv->ui_manager = NULL;
}
g_clear_weak_pointer (&editor->priv->ui_manager);
G_OBJECT_CLASS (parent_class)->dispose (object);
}
@ -448,19 +439,14 @@ gimp_editor_create_menu (GimpEditor *editor,
editor->priv->menu_factory = g_object_ref (menu_factory);
if (editor->priv->ui_manager)
{
g_signal_handlers_disconnect_by_func (editor->priv->ui_manager->gimp->config,
G_CALLBACK (gimp_editor_style_updated),
editor);
g_object_remove_weak_pointer (G_OBJECT (editor->priv->ui_manager),
(gpointer) &editor->priv->ui_manager);
}
editor->priv->ui_manager = gimp_menu_factory_get_manager (menu_factory,
g_set_weak_pointer (&editor->priv->ui_manager,
gimp_menu_factory_get_manager (menu_factory,
menu_identifier,
popup_data);
g_object_add_weak_pointer (G_OBJECT (editor->priv->ui_manager),
(gpointer) &editor->priv->ui_manager);
popup_data));
g_signal_connect_object (editor->priv->ui_manager->gimp->config,
"notify::theme",

View File

@ -713,10 +713,8 @@ gimp_modifiers_editor_search_clicked (GtkWidget *button,
G_CALLBACK (gimp_controller_modifiers_action_activated),
edit_dialog, 0);
editor->priv->action_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (GIMP_ACTION_EDITOR (view)->view));
g_object_add_weak_pointer (G_OBJECT (editor->priv->action_selection),
(gpointer) &editor->priv->action_selection);
g_set_weak_pointer (&editor->priv->action_selection,
gtk_tree_view_get_selection (GTK_TREE_VIEW (GIMP_ACTION_EDITOR (view)->view)));
gtk_widget_show (edit_dialog);

View File

@ -108,18 +108,7 @@ gimp_open_dialog_set_image (GimpOpenDialog *dialog,
file_dialog = GIMP_FILE_DIALOG (dialog);
if (file_dialog->image)
{
g_object_remove_weak_pointer (G_OBJECT (file_dialog->image),
(gpointer *) &file_dialog->image);
}
g_set_weak_pointer (&file_dialog->image, image);
file_dialog->image = image;
dialog->open_as_layers = open_as_layers;
if (file_dialog->image)
{
g_object_add_weak_pointer (G_OBJECT (file_dialog->image),
(gpointer *) &file_dialog->image);
}
}

View File

@ -633,17 +633,16 @@ gimp_settings_box_manage_activate (GtkWidget *widget,
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (box));
private->editor_dialog = gimp_dialog_new (_("Manage Saved Presets"),
g_set_weak_pointer (&private->editor_dialog,
gimp_dialog_new (_("Manage Saved Presets"),
"gimp-settings-editor-dialog",
toplevel, 0,
NULL, NULL,
_("_Close"), GTK_RESPONSE_CLOSE,
NULL);
NULL));
g_object_add_weak_pointer (G_OBJECT (private->editor_dialog),
(gpointer) &private->editor_dialog);
g_signal_connect_object (toplevel, "unmap",
G_CALLBACK (gimp_settings_box_toplevel_unmap),
private->editor_dialog, 0);
@ -703,7 +702,7 @@ gimp_settings_box_file_dialog (GimpSettingsBox *box,
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (box));
private->file_dialog = dialog =
dialog =
gtk_file_chooser_dialog_new (title, GTK_WINDOW (toplevel),
save ?
GTK_FILE_CHOOSER_ACTION_SAVE :
@ -715,6 +714,8 @@ gimp_settings_box_file_dialog (GimpSettingsBox *box,
NULL);
g_set_weak_pointer (&private->file_dialog, dialog);
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
gimp_dialog_set_alternative_button_order (GTK_DIALOG (dialog),
GTK_RESPONSE_OK,
@ -727,8 +728,6 @@ gimp_settings_box_file_dialog (GimpSettingsBox *box,
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE);
g_object_add_weak_pointer (G_OBJECT (dialog),
(gpointer) &private->file_dialog);
g_signal_connect_object (toplevel, "unmap",
G_CALLBACK (gimp_settings_box_toplevel_unmap),
dialog, 0);

View File

@ -585,9 +585,6 @@ gimp_view_real_set_viewable (GimpView *view,
if (view->viewable)
{
g_object_remove_weak_pointer (G_OBJECT (view->viewable),
(gpointer) &view->viewable);
if (! viewable && ! view->renderer->is_popup)
{
if (gimp_dnd_viewable_source_remove (GTK_WIDGET (view),
@ -620,13 +617,8 @@ gimp_view_real_set_viewable (GimpView *view,
}
gimp_view_renderer_set_viewable (view->renderer, viewable);
view->viewable = viewable;
if (view->viewable)
{
g_object_add_weak_pointer (G_OBJECT (view->viewable),
(gpointer) &view->viewable);
}
g_set_weak_pointer (&view->viewable, viewable);
}
/* public functions */

View File

@ -334,13 +334,11 @@ gimp_viewable_dialog_set_viewables (GimpViewableDialog *dialog,
box = gtk_widget_get_parent (dialog->icon);
dialog->view = gimp_view_new (context, viewable, 32, 1, TRUE);
g_set_weak_pointer (&dialog->view,
gimp_view_new (context, viewable, 32, 1, TRUE));
gtk_box_pack_end (GTK_BOX (box), dialog->view, FALSE, FALSE, 2);
gtk_widget_show (dialog->view);
g_object_add_weak_pointer (G_OBJECT (dialog->view),
(gpointer) &dialog->view);
gimp_viewable_dialog_name_changed (GIMP_OBJECT (viewable), dialog);
if (GIMP_IS_ITEM (viewable))

View File

@ -273,15 +273,7 @@ gimp_window_set_primary_focus_widget (GimpWindow *window,
private = window->private;
if (private->primary_focus_widget)
g_object_remove_weak_pointer (G_OBJECT (private->primary_focus_widget),
(gpointer) &private->primary_focus_widget);
private->primary_focus_widget = primary_focus;
if (private->primary_focus_widget)
g_object_add_weak_pointer (G_OBJECT (private->primary_focus_widget),
(gpointer) &private->primary_focus_widget);
g_set_weak_pointer (&private->primary_focus_widget, primary_focus);
}
GtkWidget *