[gimp] Bug 777880 - better handling of sensitivity functions for channel combobox on threshold, levels and
- From: Thomas Manni <tmanni src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] Bug 777880 - better handling of sensitivity functions for channel combobox on threshold, levels and
- Date: Sun, 29 Jan 2017 13:09:08 +0000 (UTC)
commit 0d4dd11e2a8840ce1dbc7a28edb78984483cbf26
Author: Thomas Manni <thomas manni free fr>
Date: Sun Jan 29 14:07:06 2017 +0100
Bug 777880 - better handling of sensitivity functions for channel combobox on threshold, levels and
curves tools
- set the filter_tool->drawable before showing the tool gui.
- set the sensitivity functions for channel combobox of threshold,
levels and curves tools dialogs only once during dialog creations.
- use the filter_tool->drawable inside the sensitivity functions
app/tools/gimpcurvestool.c | 10 ++++++----
app/tools/gimpfiltertool.c | 2 +-
app/tools/gimplevelstool.c | 10 ++++++----
app/tools/gimpthresholdtool.c | 14 +++++++++-----
4 files changed, 22 insertions(+), 14 deletions(-)
---
diff --git a/app/tools/gimpcurvestool.c b/app/tools/gimpcurvestool.c
index 8045936..53d7506 100644
--- a/app/tools/gimpcurvestool.c
+++ b/app/tools/gimpcurvestool.c
@@ -222,9 +222,6 @@ gimp_curves_tool_initialize (GimpTool *tool,
return FALSE;
}
- gimp_int_combo_box_set_sensitivity (GIMP_INT_COMBO_BOX (c_tool->channel_menu),
- curves_menu_sensitivity, drawable, NULL);
-
histogram = gimp_histogram_new (FALSE);
gimp_drawable_calculate_histogram (drawable, histogram);
gimp_histogram_view_set_background (GIMP_HISTOGRAM_VIEW (c_tool->graph),
@@ -471,6 +468,8 @@ gimp_curves_tool_dialog (GimpFilterTool *filter_tool)
config->channel);
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),
+ curves_menu_sensitivity, filter_tool, NULL);
gtk_box_pack_start (GTK_BOX (hbox), tool->channel_menu, FALSE, FALSE, 0);
gtk_widget_show (tool->channel_menu);
@@ -822,9 +821,12 @@ static gboolean
curves_menu_sensitivity (gint value,
gpointer data)
{
- GimpDrawable *drawable = GIMP_DRAWABLE (data);
+ GimpDrawable *drawable = GIMP_FILTER_TOOL (data)->drawable;
GimpHistogramChannel channel = value;
+ if (!drawable)
+ return FALSE;
+
switch (channel)
{
case GIMP_HISTOGRAM_VALUE:
diff --git a/app/tools/gimpfiltertool.c b/app/tools/gimpfiltertool.c
index 5e85031..3bbf409 100644
--- a/app/tools/gimpfiltertool.c
+++ b/app/tools/gimpfiltertool.c
@@ -484,9 +484,9 @@ gimp_filter_tool_initialize (GimpTool *tool,
gimp_tool_gui_set_shell (filter_tool->gui, shell);
gimp_tool_gui_set_viewable (filter_tool->gui, GIMP_VIEWABLE (drawable));
+ filter_tool->drawable = drawable;
gimp_tool_gui_show (filter_tool->gui);
- filter_tool->drawable = drawable;
gimp_filter_tool_create_map (filter_tool);
return TRUE;
diff --git a/app/tools/gimplevelstool.c b/app/tools/gimplevelstool.c
index 2b38baf..6dca751 100644
--- a/app/tools/gimplevelstool.c
+++ b/app/tools/gimplevelstool.c
@@ -214,9 +214,6 @@ gimp_levels_tool_initialize (GimpTool *tool,
return FALSE;
}
- gimp_int_combo_box_set_sensitivity (GIMP_INT_COMBO_BOX (l_tool->channel_menu),
- levels_menu_sensitivity, drawable, NULL);
-
gimp_drawable_calculate_histogram (drawable, l_tool->histogram);
gimp_histogram_view_set_histogram (GIMP_HISTOGRAM_VIEW (l_tool->histogram_view),
l_tool->histogram);
@@ -376,6 +373,8 @@ gimp_levels_tool_dialog (GimpFilterTool *filter_tool)
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),
+ levels_menu_sensitivity, filter_tool, NULL);
gtk_box_pack_start (GTK_BOX (hbox), tool->channel_menu, FALSE, FALSE, 0);
gtk_widget_show (tool->channel_menu);
@@ -918,9 +917,12 @@ static gboolean
levels_menu_sensitivity (gint value,
gpointer data)
{
- GimpDrawable *drawable = GIMP_DRAWABLE (data);
+ GimpDrawable *drawable = GIMP_FILTER_TOOL (data)->drawable;
GimpHistogramChannel channel = value;
+ if (!drawable)
+ return FALSE;
+
switch (channel)
{
case GIMP_HISTOGRAM_VALUE:
diff --git a/app/tools/gimpthresholdtool.c b/app/tools/gimpthresholdtool.c
index c1e59dc..131ab7d 100644
--- a/app/tools/gimpthresholdtool.c
+++ b/app/tools/gimpthresholdtool.c
@@ -162,10 +162,6 @@ gimp_threshold_tool_initialize (GimpTool *tool,
return FALSE;
}
- gimp_int_combo_box_set_sensitivity (GIMP_INT_COMBO_BOX (t_tool->channel_menu),
- gimp_threshold_tool_channel_sensitive,
- drawable, NULL);
-
gimp_drawable_calculate_histogram (drawable, t_tool->histogram);
gimp_histogram_view_set_histogram (t_tool->histogram_box->view,
t_tool->histogram);
@@ -230,6 +226,11 @@ gimp_threshold_tool_dialog (GimpFilterTool *filter_tool)
"channel", -1, -1);
gimp_enum_combo_box_set_icon_prefix (GIMP_ENUM_COMBO_BOX (t_tool->channel_menu),
"gimp-channel");
+
+ gimp_int_combo_box_set_sensitivity (GIMP_INT_COMBO_BOX (t_tool->channel_menu),
+ gimp_threshold_tool_channel_sensitive,
+ filter_tool, NULL);
+
gtk_box_pack_start (GTK_BOX (hbox), t_tool->channel_menu, FALSE, FALSE, 0);
gtk_widget_show (t_tool->channel_menu);
@@ -331,9 +332,12 @@ static gboolean
gimp_threshold_tool_channel_sensitive (gint value,
gpointer data)
{
- GimpDrawable *drawable = GIMP_DRAWABLE (data);
+ GimpDrawable *drawable = GIMP_FILTER_TOOL (data)->drawable;
GimpHistogramChannel channel = value;
+ if (!drawable)
+ return FALSE;
+
switch (channel)
{
case GIMP_HISTOGRAM_VALUE:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]