mirror of https://github.com/GNOME/gimp.git
Bill Skaggs <weskaggs@primate.udavis.edu>
committing patch by Simon Budig to give an indication when working on a layer mask, updated to fix staleness and respond to "edit-changed". Might fix bug #132204. * app/core/core-enums.[ch]: add GIMP_SELECTION_LAYER_ON. * app/core/gimplayermask.c: add handler for "edit-changed". * app/core/gimpcanvas.[ch]: add new style GIMP_CANVAS_STYLE_LAYER_MASK_ACTIVE. * app/display/gimpdisplayshell-selection.c: use new style when layer mask is active. svn path=/trunk/; revision=24520
This commit is contained in:
parent
48358e3452
commit
2ba3e595bc
17
ChangeLog
17
ChangeLog
|
@ -1,3 +1,20 @@
|
|||
2008-01-03 Bill Skaggs <weskaggs@primate.udavis.edu>
|
||||
|
||||
committing patch by Simon Budig to give an indication
|
||||
when working on a layer mask, updated to fix staleness
|
||||
and respond to "edit-changed". Might fix bug #132204.
|
||||
|
||||
* app/core/core-enums.[ch]: add GIMP_SELECTION_LAYER_ON.
|
||||
|
||||
* app/core/gimplayermask.c: add handler for "edit-changed".
|
||||
|
||||
* app/core/gimpcanvas.[ch]: add new style
|
||||
GIMP_CANVAS_STYLE_LAYER_MASK_ACTIVE.
|
||||
|
||||
* app/display/gimpdisplayshell-selection.c: use new style
|
||||
when layer mask is active.
|
||||
|
||||
|
||||
2008-01-03 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/tools/gimpimagemaptool.[ch]: keep the central processing
|
||||
|
|
|
@ -627,6 +627,7 @@ gimp_selection_control_get_type (void)
|
|||
{
|
||||
{ GIMP_SELECTION_OFF, "GIMP_SELECTION_OFF", "off" },
|
||||
{ GIMP_SELECTION_LAYER_OFF, "GIMP_SELECTION_LAYER_OFF", "layer-off" },
|
||||
{ GIMP_SELECTION_LAYER_ON, "GIMP_SELECTION_LAYER_ON", "layer-on" },
|
||||
{ GIMP_SELECTION_ON, "GIMP_SELECTION_ON", "on" },
|
||||
{ GIMP_SELECTION_PAUSE, "GIMP_SELECTION_PAUSE", "pause" },
|
||||
{ GIMP_SELECTION_RESUME, "GIMP_SELECTION_RESUME", "resume" },
|
||||
|
@ -637,6 +638,7 @@ gimp_selection_control_get_type (void)
|
|||
{
|
||||
{ GIMP_SELECTION_OFF, "GIMP_SELECTION_OFF", NULL },
|
||||
{ GIMP_SELECTION_LAYER_OFF, "GIMP_SELECTION_LAYER_OFF", NULL },
|
||||
{ GIMP_SELECTION_LAYER_ON, "GIMP_SELECTION_LAYER_ON", NULL },
|
||||
{ GIMP_SELECTION_ON, "GIMP_SELECTION_ON", NULL },
|
||||
{ GIMP_SELECTION_PAUSE, "GIMP_SELECTION_PAUSE", NULL },
|
||||
{ GIMP_SELECTION_RESUME, "GIMP_SELECTION_RESUME", NULL },
|
||||
|
|
|
@ -299,6 +299,7 @@ typedef enum /*< pdb-skip >*/
|
|||
{
|
||||
GIMP_SELECTION_OFF,
|
||||
GIMP_SELECTION_LAYER_OFF,
|
||||
GIMP_SELECTION_LAYER_ON,
|
||||
GIMP_SELECTION_ON,
|
||||
GIMP_SELECTION_PAUSE,
|
||||
GIMP_SELECTION_RESUME
|
||||
|
|
|
@ -54,6 +54,7 @@ static gboolean gimp_layer_mask_rename (GimpItem *item,
|
|||
const gchar *undo_desc,
|
||||
GError **error);
|
||||
|
||||
static void gimp_layer_mask_real_edit_changed (GimpLayerMask *layer_mask);
|
||||
|
||||
G_DEFINE_TYPE (GimpLayerMask, gimp_layer_mask, GIMP_TYPE_CHANNEL)
|
||||
|
||||
|
@ -97,6 +98,8 @@ gimp_layer_mask_class_init (GimpLayerMaskClass *klass)
|
|||
|
||||
viewable_class->default_stock_id = "gimp-layer-mask";
|
||||
|
||||
klass->edit_changed = gimp_layer_mask_real_edit_changed;
|
||||
|
||||
item_class->is_attached = gimp_layer_mask_is_attached;
|
||||
item_class->duplicate = gimp_layer_mask_duplicate;
|
||||
item_class->rename = gimp_layer_mask_rename;
|
||||
|
@ -281,6 +284,13 @@ gimp_layer_mask_get_edit (const GimpLayerMask *layer_mask)
|
|||
return layer_mask->edit_mask;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_layer_mask_real_edit_changed (GimpLayerMask *layer_mask)
|
||||
{
|
||||
gimp_image_selection_control (GIMP_ITEM (layer_mask)->image,
|
||||
GIMP_SELECTION_LAYER_ON);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_layer_mask_set_show (GimpLayerMask *layer_mask,
|
||||
gboolean show,
|
||||
|
|
|
@ -347,6 +347,7 @@ gimp_canvas_gc_new (GimpCanvas *canvas,
|
|||
case GIMP_CANVAS_STYLE_LAYER_BOUNDARY:
|
||||
case GIMP_CANVAS_STYLE_GUIDE_NORMAL:
|
||||
case GIMP_CANVAS_STYLE_GUIDE_ACTIVE:
|
||||
case GIMP_CANVAS_STYLE_LAYER_MASK_ACTIVE:
|
||||
mask |= GDK_GC_CAP_STYLE | GDK_GC_FILL | GDK_GC_STIPPLE;
|
||||
values.cap_style = GDK_CAP_NOT_LAST;
|
||||
values.fill = GDK_OPAQUE_STIPPLED;
|
||||
|
@ -433,6 +434,16 @@ gimp_canvas_gc_new (GimpCanvas *canvas,
|
|||
bg.blue = 0x0;
|
||||
break;
|
||||
|
||||
case GIMP_CANVAS_STYLE_LAYER_MASK_ACTIVE:
|
||||
fg.red = 0x0;
|
||||
fg.green = 0x0;
|
||||
fg.blue = 0x0;
|
||||
|
||||
bg.red = 0x0;
|
||||
bg.green = 0xffff;
|
||||
bg.blue = 0x0;
|
||||
break;
|
||||
|
||||
case GIMP_CANVAS_STYLE_SAMPLE_POINT_NORMAL:
|
||||
fg.red = 0x0;
|
||||
fg.green = 0x7f7f;
|
||||
|
|
|
@ -38,6 +38,7 @@ typedef enum
|
|||
GIMP_CANVAS_STYLE_GUIDE_ACTIVE,
|
||||
GIMP_CANVAS_STYLE_SAMPLE_POINT_NORMAL,
|
||||
GIMP_CANVAS_STYLE_SAMPLE_POINT_ACTIVE,
|
||||
GIMP_CANVAS_STYLE_LAYER_MASK_ACTIVE,
|
||||
GIMP_CANVAS_STYLE_CUSTOM,
|
||||
GIMP_CANVAS_NUM_STYLES
|
||||
} GimpCanvasStyle;
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
#include "core/gimp.h"
|
||||
#include "core/gimpchannel.h"
|
||||
#include "core/gimplayermask.h"
|
||||
#include "core/gimpimage.h"
|
||||
|
||||
#include "gimpcanvas.h"
|
||||
|
@ -75,6 +76,7 @@ static void selection_resume (Selection *selection);
|
|||
static void selection_draw (Selection *selection);
|
||||
static void selection_undraw (Selection *selection);
|
||||
static void selection_layer_undraw (Selection *selection);
|
||||
static void selection_layer_draw (Selection *selection);
|
||||
|
||||
static void selection_add_point (GdkPoint *points[8],
|
||||
gint max_npoints[8],
|
||||
|
@ -178,6 +180,10 @@ gimp_display_shell_selection_control (GimpDisplayShell *shell,
|
|||
selection_layer_undraw (selection);
|
||||
break;
|
||||
|
||||
case GIMP_SELECTION_LAYER_ON:
|
||||
selection_layer_draw (selection);
|
||||
break;
|
||||
|
||||
case GIMP_SELECTION_ON:
|
||||
selection_start (selection);
|
||||
break;
|
||||
|
@ -367,9 +373,13 @@ static void
|
|||
selection_layer_draw (Selection *selection)
|
||||
{
|
||||
GimpCanvas *canvas = GIMP_CANVAS (selection->shell->canvas);
|
||||
GimpImage *image = selection->shell->display->image;
|
||||
GimpDrawable *drawable = gimp_image_get_active_drawable (image);
|
||||
|
||||
if (selection->segs_layer)
|
||||
gimp_canvas_draw_segments (canvas, GIMP_CANVAS_STYLE_LAYER_BOUNDARY,
|
||||
gimp_canvas_draw_segments (canvas, GIMP_IS_LAYER_MASK (drawable) ?
|
||||
GIMP_CANVAS_STYLE_LAYER_MASK_ACTIVE:
|
||||
GIMP_CANVAS_STYLE_LAYER_BOUNDARY,
|
||||
selection->segs_layer,
|
||||
selection->num_segs_layer);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue