From bf72684e5ad306a1e809bc19c95da12e4f919d26 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Fri, 18 Feb 2000 21:22:13 +0000 Subject: [PATCH] app/paint_options.h put the pointer to tool's private context to the 2000-02-18 Michael Natterer * app/paint_options.h * app/tool_options.h: put the pointer to tool's private context to the PaintOptions structure instead of attaching it to the paint_mode optionmenu (which does not exist for all paint tools which have a private context). Fixes bug #6308. --- ChangeLog | 8 ++++++++ app/core/gimptooloptions.c | 24 +++++++----------------- app/paint_options.h | 3 +++ app/tool_options.c | 24 +++++++----------------- app/tools/gimppaintoptions-gui.h | 3 +++ app/tools/paint_options.h | 3 +++ app/tools/tool_options.c | 24 +++++++----------------- 7 files changed, 38 insertions(+), 51 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7f8332c007..6b486b807f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2000-02-18 Michael Natterer + + * app/paint_options.h + * app/tool_options.h: put the pointer to tool's private context to + the PaintOptions structure instead of attaching it to the + paint_mode optionmenu (which does not exist for all paint tools + which have a private context). Fixes bug #6308. + 2000-02-18 Michael Natterer * libgimp/gimpwidgets.c: added (empty) documentation headers. diff --git a/app/core/gimptooloptions.c b/app/core/gimptooloptions.c index e3c4396532..67c1b20600 100644 --- a/app/core/gimptooloptions.c +++ b/app/core/gimptooloptions.c @@ -76,17 +76,14 @@ tool_options_paint_mode_update (GtkWidget *widget, { LayerModeEffects paint_mode; PaintOptions *options; - GimpContext *context; paint_mode = (LayerModeEffects) gtk_object_get_user_data (GTK_OBJECT (widget)); options = (PaintOptions *) data; - context = gtk_object_get_data (GTK_OBJECT (options->paint_mode_w), - "tool_context"); - gtk_signal_handler_block_by_data (GTK_OBJECT (context), + gtk_signal_handler_block_by_data (GTK_OBJECT (options->context), options->paint_mode_w); - gimp_context_set_paint_mode (GIMP_CONTEXT (context), paint_mode); - gtk_signal_handler_unblock_by_data (GTK_OBJECT (context), + gimp_context_set_paint_mode (GIMP_CONTEXT (options->context), paint_mode); + gtk_signal_handler_unblock_by_data (GTK_OBJECT (options->context), options->paint_mode_w); } @@ -478,6 +475,7 @@ paint_options_init (PaintOptions *options, options->global = NULL; options->opacity_w = NULL; options->paint_mode_w = NULL; + options->context = tool_context; options->incremental_w = NULL; options->incremental = options->incremental_d = FALSE; @@ -535,10 +533,6 @@ paint_options_init (PaintOptions *options, gtk_signal_connect (GTK_OBJECT (tool_context), "paint_mode_changed", GTK_SIGNAL_FUNC (tool_options_paint_mode_changed), options->paint_mode_w); - - /* eek */ - gtk_object_set_data (GTK_OBJECT (options->paint_mode_w), "tool_context", - tool_context); break; case CONVOLVE: case ERASER: @@ -638,27 +632,23 @@ paint_options_new (ToolType tool_type, void paint_options_reset (PaintOptions *options) { - GimpContext *context; GimpContext *default_context; - context = (GimpContext *) - gtk_object_get_data (GTK_OBJECT (options->paint_mode_w), "tool_context"); - default_context = gimp_context_get_default (); if (options->opacity_w) { - gimp_context_set_opacity (context, + gimp_context_set_opacity (GIMP_CONTEXT (options->context), gimp_context_get_opacity (default_context)); } if (options->paint_mode_w) { - gimp_context_set_paint_mode (GIMP_CONTEXT (context), + gimp_context_set_paint_mode (GIMP_CONTEXT (options->context), gimp_context_get_paint_mode (default_context)); } if (options->incremental_w) { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(options->incremental_w), + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (options->incremental_w), options->incremental_d); } diff --git a/app/paint_options.h b/app/paint_options.h index ba4d1c3f64..5c99bf1b76 100644 --- a/app/paint_options.h +++ b/app/paint_options.h @@ -64,6 +64,9 @@ struct _PaintOptions GtkObject *opacity_w; GtkWidget *paint_mode_w; + /* this tool's private context */ + GimpContext *context; + /* the incremental toggle */ gboolean incremental; gboolean incremental_d; diff --git a/app/tool_options.c b/app/tool_options.c index e3c4396532..67c1b20600 100644 --- a/app/tool_options.c +++ b/app/tool_options.c @@ -76,17 +76,14 @@ tool_options_paint_mode_update (GtkWidget *widget, { LayerModeEffects paint_mode; PaintOptions *options; - GimpContext *context; paint_mode = (LayerModeEffects) gtk_object_get_user_data (GTK_OBJECT (widget)); options = (PaintOptions *) data; - context = gtk_object_get_data (GTK_OBJECT (options->paint_mode_w), - "tool_context"); - gtk_signal_handler_block_by_data (GTK_OBJECT (context), + gtk_signal_handler_block_by_data (GTK_OBJECT (options->context), options->paint_mode_w); - gimp_context_set_paint_mode (GIMP_CONTEXT (context), paint_mode); - gtk_signal_handler_unblock_by_data (GTK_OBJECT (context), + gimp_context_set_paint_mode (GIMP_CONTEXT (options->context), paint_mode); + gtk_signal_handler_unblock_by_data (GTK_OBJECT (options->context), options->paint_mode_w); } @@ -478,6 +475,7 @@ paint_options_init (PaintOptions *options, options->global = NULL; options->opacity_w = NULL; options->paint_mode_w = NULL; + options->context = tool_context; options->incremental_w = NULL; options->incremental = options->incremental_d = FALSE; @@ -535,10 +533,6 @@ paint_options_init (PaintOptions *options, gtk_signal_connect (GTK_OBJECT (tool_context), "paint_mode_changed", GTK_SIGNAL_FUNC (tool_options_paint_mode_changed), options->paint_mode_w); - - /* eek */ - gtk_object_set_data (GTK_OBJECT (options->paint_mode_w), "tool_context", - tool_context); break; case CONVOLVE: case ERASER: @@ -638,27 +632,23 @@ paint_options_new (ToolType tool_type, void paint_options_reset (PaintOptions *options) { - GimpContext *context; GimpContext *default_context; - context = (GimpContext *) - gtk_object_get_data (GTK_OBJECT (options->paint_mode_w), "tool_context"); - default_context = gimp_context_get_default (); if (options->opacity_w) { - gimp_context_set_opacity (context, + gimp_context_set_opacity (GIMP_CONTEXT (options->context), gimp_context_get_opacity (default_context)); } if (options->paint_mode_w) { - gimp_context_set_paint_mode (GIMP_CONTEXT (context), + gimp_context_set_paint_mode (GIMP_CONTEXT (options->context), gimp_context_get_paint_mode (default_context)); } if (options->incremental_w) { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(options->incremental_w), + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (options->incremental_w), options->incremental_d); } diff --git a/app/tools/gimppaintoptions-gui.h b/app/tools/gimppaintoptions-gui.h index ba4d1c3f64..5c99bf1b76 100644 --- a/app/tools/gimppaintoptions-gui.h +++ b/app/tools/gimppaintoptions-gui.h @@ -64,6 +64,9 @@ struct _PaintOptions GtkObject *opacity_w; GtkWidget *paint_mode_w; + /* this tool's private context */ + GimpContext *context; + /* the incremental toggle */ gboolean incremental; gboolean incremental_d; diff --git a/app/tools/paint_options.h b/app/tools/paint_options.h index ba4d1c3f64..5c99bf1b76 100644 --- a/app/tools/paint_options.h +++ b/app/tools/paint_options.h @@ -64,6 +64,9 @@ struct _PaintOptions GtkObject *opacity_w; GtkWidget *paint_mode_w; + /* this tool's private context */ + GimpContext *context; + /* the incremental toggle */ gboolean incremental; gboolean incremental_d; diff --git a/app/tools/tool_options.c b/app/tools/tool_options.c index e3c4396532..67c1b20600 100644 --- a/app/tools/tool_options.c +++ b/app/tools/tool_options.c @@ -76,17 +76,14 @@ tool_options_paint_mode_update (GtkWidget *widget, { LayerModeEffects paint_mode; PaintOptions *options; - GimpContext *context; paint_mode = (LayerModeEffects) gtk_object_get_user_data (GTK_OBJECT (widget)); options = (PaintOptions *) data; - context = gtk_object_get_data (GTK_OBJECT (options->paint_mode_w), - "tool_context"); - gtk_signal_handler_block_by_data (GTK_OBJECT (context), + gtk_signal_handler_block_by_data (GTK_OBJECT (options->context), options->paint_mode_w); - gimp_context_set_paint_mode (GIMP_CONTEXT (context), paint_mode); - gtk_signal_handler_unblock_by_data (GTK_OBJECT (context), + gimp_context_set_paint_mode (GIMP_CONTEXT (options->context), paint_mode); + gtk_signal_handler_unblock_by_data (GTK_OBJECT (options->context), options->paint_mode_w); } @@ -478,6 +475,7 @@ paint_options_init (PaintOptions *options, options->global = NULL; options->opacity_w = NULL; options->paint_mode_w = NULL; + options->context = tool_context; options->incremental_w = NULL; options->incremental = options->incremental_d = FALSE; @@ -535,10 +533,6 @@ paint_options_init (PaintOptions *options, gtk_signal_connect (GTK_OBJECT (tool_context), "paint_mode_changed", GTK_SIGNAL_FUNC (tool_options_paint_mode_changed), options->paint_mode_w); - - /* eek */ - gtk_object_set_data (GTK_OBJECT (options->paint_mode_w), "tool_context", - tool_context); break; case CONVOLVE: case ERASER: @@ -638,27 +632,23 @@ paint_options_new (ToolType tool_type, void paint_options_reset (PaintOptions *options) { - GimpContext *context; GimpContext *default_context; - context = (GimpContext *) - gtk_object_get_data (GTK_OBJECT (options->paint_mode_w), "tool_context"); - default_context = gimp_context_get_default (); if (options->opacity_w) { - gimp_context_set_opacity (context, + gimp_context_set_opacity (GIMP_CONTEXT (options->context), gimp_context_get_opacity (default_context)); } if (options->paint_mode_w) { - gimp_context_set_paint_mode (GIMP_CONTEXT (context), + gimp_context_set_paint_mode (GIMP_CONTEXT (options->context), gimp_context_get_paint_mode (default_context)); } if (options->incremental_w) { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(options->incremental_w), + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (options->incremental_w), options->incremental_d); }