app: in GimpFilterTool, make region combo insensitive when selection is empty
This commit is contained in:
parent
7949fd9a28
commit
093e017df8
1 changed files with 31 additions and 0 deletions
|
|
@ -43,6 +43,7 @@
|
|||
#include "gegl/gimp-gegl-utils.h"
|
||||
|
||||
#include "core/gimp.h"
|
||||
#include "core/gimpchannel.h"
|
||||
#include "core/gimpdrawable.h"
|
||||
#include "core/gimpdrawablefilter.h"
|
||||
#include "core/gimperror.h"
|
||||
|
|
@ -160,6 +161,8 @@ static void gimp_filter_tool_flush (GimpDrawableFilter *filter,
|
|||
static void gimp_filter_tool_config_notify (GObject *object,
|
||||
const GParamSpec *pspec,
|
||||
GimpFilterTool *filter_tool);
|
||||
static void gimp_filter_tool_mask_changed (GimpImage *image,
|
||||
GimpFilterTool *filter_tool);
|
||||
|
||||
static void gimp_filter_tool_add_guide (GimpFilterTool *filter_tool);
|
||||
static void gimp_filter_tool_remove_guide (GimpFilterTool *filter_tool);
|
||||
|
|
@ -448,6 +451,12 @@ gimp_filter_tool_initialize (GimpTool *tool,
|
|||
|
||||
gimp_filter_tool_create_filter (filter_tool);
|
||||
|
||||
g_signal_connect_object (image, "mask-changed",
|
||||
G_CALLBACK (gimp_filter_tool_mask_changed),
|
||||
filter_tool, 0);
|
||||
|
||||
gimp_filter_tool_mask_changed (image, filter_tool);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -946,6 +955,15 @@ gimp_filter_tool_halt (GimpFilterTool *filter_tool)
|
|||
|
||||
gimp_filter_tool_disable_color_picking (filter_tool);
|
||||
|
||||
if (tool->display)
|
||||
{
|
||||
GimpImage *image = gimp_display_get_image (tool->display);
|
||||
|
||||
g_signal_handlers_disconnect_by_func (image,
|
||||
gimp_filter_tool_mask_changed,
|
||||
filter_tool);
|
||||
}
|
||||
|
||||
if (filter_tool->gui)
|
||||
{
|
||||
/* explicitly clear the dialog contents first, since we might be called
|
||||
|
|
@ -1110,6 +1128,19 @@ gimp_filter_tool_config_notify (GObject *object,
|
|||
pspec);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_filter_tool_mask_changed (GimpImage *image,
|
||||
GimpFilterTool *filter_tool)
|
||||
{
|
||||
if (filter_tool->gui)
|
||||
{
|
||||
GimpChannel *mask = gimp_image_get_mask (image);
|
||||
|
||||
gtk_widget_set_sensitive (filter_tool->region_combo,
|
||||
! gimp_channel_is_empty (mask));
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_filter_tool_add_guide (GimpFilterTool *filter_tool)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue