2006-08-29 Sven Neumann <sven@gimp.org>
* libgimpbase/Makefile.am
* libgimpbase/gimpbase.h
* libgimpbase/gimprectangle.[ch]: added new files that hold
gimp_rectangle_intersect(), factored out of the core.
* libgimpbase/gimpbase.def: updated.
* app/core/gimp-edit.c
* app/core/gimp-utils.c
* app/core/gimp-utils.h
* app/core/gimpchannel-combine.c
* app/core/gimpdrawable-foreground-extract.c
* app/core/gimpdrawable-transform.c
* app/core/gimpdrawable.c
* app/core/gimpimage-preview.c
* app/core/gimplayer.c
* app/core/gimpscanconvert.c
* app/display/gimpdisplayshell-draw.c: changed includes accordingly.
* libgimp/gimpdrawablepreview.c: don't duplicate
gimp_rectangle_intersect() here, use the function in libgimpbase.
* app/base/siox.c: use gimp_rectangle_intersect() to reduce the
working area to the region of interest. Fixes bug #340422.
2006-08-14 Sven Neumann <sven@gimp.org>
* app/core/gimp-edit.c (gimp_edit_make_buffer): do not autocrop
the buffer contents, always keep the selection size (bug #350897).
2006-03-24 Sven Neumann <sven@gimp.org>
* app/actions/colormap-editor-actions.c
* app/actions/gradient-editor-actions.c
* app/actions/palette-editor-actions.c
* app/core/gimp-edit.c
* app/core/gimpchannel-select.c: some more string changes, mainly
avoiding the use of FG and BG in labels where there's no need for
being concise.
2006-03-02 Michael Natterer <mitch@gimp.org>
* app/core/gimppickable.[ch]: added new methods ::get_bytes() and
::flush()
* app/core/gimpchannel.c
* app/core/gimpdrawable.c
* app/core/gimpimagemap.c
* app/core/gimpprojection.c: implement ::get_bytes()
* app/core/gimpprojection.c: implement ::flush() (immediately
process both the idle renderer's queue and the unflushed update
areas, to make sure that any reading from the projection will
re-construct it).
* app/core/gimp-edit.c
* app/core/gimpchannel.c
* app/core/gimpimage-contiguous-region.c
* app/core/gimpimage-crop.c
* app/core/gimppalette-import.c
* app/paint/gimpclone.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpiscissorstool.c
* tools/pdbgen/pdb/image.pdb: use the pickable interface more
consistently when reading from any drawable or the projection, and
call gimp_pickable_flush() before doing so. Fixes bug #332933.
* app/core/gimpimage-pick-color.c: added comment why the we don't
call gimp_pickable_flush() here.
* app/pdb/image_cmds.c
* libgimp/gimpimage_pdb.c: regenerated.
2005-09-05 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.c: don't let named cut/copy affect the global
buffer. Fixes bug #315225. Also make "Global Buffer" translatable.
2005-09-03 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.[ch] (gimp_edit_paste_as_new): don't create a
display here.
(gimp_edit_named_cut)
(gimp_edit_named_copy)
(gimp_edit_named_copy_visible): new functions containing named
buffer wrappers around the functions affecting the global buffer
only.
* app/actions/edit-commands.c: use the new functions instead of
implementing them here, create a display for the image returned
by paste as new.
* app/actions/buffers-commands.c
* app/widgets/gimptoolbox-dnd.c: create displays here too.
* tools/pdbgen/pdb/edit.pdb: added wrappers for paste as new and
wrappers for all the cut/copy/paste named stuff.
Fixes bug #315130. Cleaned up and de-obfuscated.
* libgimp/gimp.def: changed accordingly.
* app/pdb/edit_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpedit_pdb.[ch]: regenerated.
2005-07-12 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.c: pass opacity and paint_mode to
gimp_edit_fill_internal() instead of figuring them in the
function.
2005-06-10 Michael Natterer <mitch@gimp.org>
Fix bug #134304, as far as it's fixable:
* app/core/gimp-edit.c (gimp_edit_paste_as_new): handle pasting
buffers without alpha. Also don't uselessly convert all buffers
to RGB but create an image in the buffer's color space.
(gimp_edit_extract): call gimp_selection_extract() with
add_alpha = FALSE.
* app/core/gimpselection.c (gimp_selection_extract): set add_alpha
to TRUE if there is a selection, because the selection could have
any shape.
2004-12-12 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs.[ch]: added new function
copy_region_nocow() as a workaround for the fact that sharing
tiles with the projection is heavily broken.
* app/base/tile-manager.c (tile_invalidate): added a warning when
entering the code path that breaks badly.
* app/core/gimp-edit.[ch]: added gimp_edit_copy_visible(), using
the non-COW copying function above.
* app/widgets/gimphelp-ids.h: added GIMP_HELP_COPY_VISIBLE.
* app/actions/edit-actions.c
* app/actions/edit-commands.[ch]: added action & callback for
"edit-copy-visible".
* menus/image-menu.xml.in: added "edit-copy-visible" to the image
menu.
* tools/pdbgen/pdb/edit.pdb: added gimp_edit_copy_visible()
PDB wrapper.
* app/pdb/edit_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpedit_pdb.[ch]: regenerated.
* plug-ins/script-fu/scripts/copy-visible.scm: removed all code
and made it a backward compat wrapper around gimp-edit-copy-visible.
Fixes bug #138662.
2004-11-11 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.c
* app/core/gimpdrawable-blend.c
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpitem.c (gimp_item_stroke): added precondition
checks for gimp_item_is_attached() and removed checks for
gimp_item_get_image() to actually return an image (because it
always returns an image).
* tools/pdbgen/pdb/edit.pdb: let all wrappers fail if the drawable
is not attached.
* app/pdb/edit_cmds.c: regenerated.
2004-10-20 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: added gimp_drawable_mask_intersect()
which returns the same bounding box as gimp_drawable_mask_bounds(),
but returns TRUE only if there is a non-empty intersection between
the drawable and the selection, or no selection at all. It also
returns the intersection as x,y,width,height instead of the
eeky x1,y1,x2,y2.
* app/core/gimp-edit.c
* app/core/gimpdrawable-blend.c
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpdrawable-desaturate.c
* app/core/gimpdrawable-equalize.c
* app/core/gimpdrawable-histogram.c
* app/core/gimpdrawable-invert.c
* app/core/gimpdrawable-stroke.c
* app/core/gimpimagemap.c
* app/core/gimpselection.c
* tools/pdbgen/pdb/color.pdb
* tools/pdbgen/pdb/transform_tools.pdb: either switch from
gimp_drawable_mask_bounds() to _intersect() or check the return
values of _mask_bounds() manually to avoid operations on empty
areas. Return successfully because it's a nop, not a failure.
Fixes bug #155733 for the core.
* app/pdb/color_cmds.c
* app/pdb/transform_tools_cmds.c: regenerated.
2004-10-12 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: renamed struct member "unit" to
"resolution_unit".
* app/actions/image-commands.c
* app/core/gimp-edit.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-undo-push.c
* app/dialogs/info-window.c
* app/vectors/gimpvectors-export.c
* app/widgets/gimptoolbox-dnd.c:
* app/xcf/xcf-load.c
* app/xcf/xcf-save.c: changed accordingly. Use gimp_image_get_unit()
where appropriate.
* app/core/gimptemplate.c (gimp_template_set_from_image): fixed
unit handling. Don't touch the template unit, it is used as the
initial display unit. This will need further changes...
2004-09-17 Sven Neumann <sven@gimp.org>
* app/core/gimp-edit.c (gimp_edit_paste): based on a patch from
Joao S. O. Bueno: Ensure that the pasted layer is always within
the image, if it fits and aligned at top left if it doesn't.
Fixes bug #142944.
2004-06-01 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/image.pdb
* app/pdb/image_cmds.c
* app/core/gimpimage.[ch]: reverted changes I did to the image
unit earlier. As in 2.0, it will continue to not accept pixels.
This makes the PDB API and the XCF format compatible again and
fixes bug #142961 (and to some extent bug #137704).
* app/core/Makefile.am
* app/core/gimpimage-unit.[ch]: removed these files. The
convenience accessors defined here aren't commonly used any
longer.
* app/display/gimpdisplay.[ch]
* app/display/gimpdisplayshell.[ch]: added a unit parameter to
gimp_display_new(). Made "unit" and "scale" properties of
GimpDisplayShell.
* app/actions/image-commands.c
* app/actions/images-commands.c
* app/actions/layers-commands.c
* app/actions/select-commands.c
* app/actions/view-commands.c
* app/core/gimp-edit.c
* app/core/gimp.[ch]
* app/core/gimptemplate.c
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-title.c
* app/display/gimpstatusbar.c
* app/file/file-open.c
* app/gui/gui-vtable.c
* app/gui/info-window.c
* app/gui/offset-dialog.c
* app/gui/resize-dialog.[ch]
* app/pdb/display_cmds.c
* app/tools/gimpcroptool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimppainttool.c
* app/tools/gimprectselecttool.c
* app/tools/gimprotatetool.c
* app/tools/gimpscaletool.c
* app/vectors/gimpvectors-export.c
* app/widgets/gimptoolbox-dnd.c
* tools/pdbgen/pdb/display.pdb: changed accordingly. Use the
display unit where the image unit was used before.
2004-03-07 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.c (gimp_edit_extract): fixed bug added when
factoring out gimp_edit_extract(): check if tile_manager_crop()
cropped away the whole TileManager before making a GimpBuffer from
it.
2004-02-19 Michael Natterer <mitch@gimp.org>
* app/core/gimp.[ch]: added new signal "buffer_changed" and new
function gimp_set_global_buffer() which emits it when the global
buffer changes.
* app/core/gimp-edit.c (gimp_edit_extract): use it instead
of fiddling with gimp->global_buffer manually.
* app/gui/image-menu.c: connect to "buffer_changed" and set the
"Paste" menu entries sensitive. Fixes bug #134752.
(image_menu_update): changed accordingly. Also changed a lot of
buggy SET_SENSITIVE() lines which made menu items which work fine
on any drawable insensitive when there were no layers (instead
of no drawable).
* app/gui/edit-commands.c: added new macro return_if_new_drawable()
and use it instead of return_if_no_image() so we don't run
into assertions if there is no active drawable.
(cut,copy_named_buffer_callback): unfortunately had to introduce
two new translated messages about not being able to cut/copy when
there is no active drawable.
2004-01-29 Simon Budig <simon@gimp.org>
* app/display/gimpdisplayshell.[ch]: Store the zoom factor as
float, not as a ratio.
* app/display/gimpdisplayshell-scale.[ch]: change the API to
expose the Float instead a weirdly encoded integer. Implement
functions to get a ratio from the scale factor. Implement a set
as presets as discussed on the mailinglist. Changed Zoom->Other
dialog to enable entering a float.
* app/display/gimpdisplayshell-title.c
* app/display/gimpnavigationview.c
* app/gui/image-menu.c
* app/gui/info-window.c
* app/tools/gimpmagnifytool.c: changed accordingly.
* app/core/gimp.[ch]
* app/display/gimpdisplay.[ch]
* app/gui/gui-vtable.c
* app/widgets/widgets-enums.h: Made the various display-creating
functions accept a float for the scale. Introduce a new
GimpZoomType: GIMP_ZOOM_TO. Generally adjust the API to use
floats instead of weird integers.
* app/core/gimp-edit.c
* app/core/gimptemplate.c
* app/display/gimpdisplayshell-callbacks.c
* app/file/file-open.c
* app/gui/image-commands.c
* app/gui/view-commands.[ch]
* tools/pdbgen/pdb/display.pdb
* app/widgets/gimpimageview.c
* app/widgets/gimptoolbox-dnd.c: changed accordingly
* app/pdb/display_cmds.c: regenerated
2004-01-26 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/scripts/unsharp-mask.scm: add the layer to
the image before pasting to it. Fixes bug #132504.
Fixed the underlying problem: make it impossible to attach
floating selections to drawables which are not currently part of
the image's layer or channel stacks.
Also cleaned up image <-> floating_sel interaction:
* app/core/gimplayer-floating-sel.[ch] (floating_sel_attach):
added assertion that the drawable is part of the image (see below).
Don't call gimp_image_floating_selection_changed(), it's emitted
by gimp_image_add_layer() now.
(floating_sel_remove)
(floating_sel_anchor): don't emit "floating_selection_changed",
it's emitted by gimp_image_remove_layer() now.
(floating_sel_anchor): removed the fix for bug #132162 because
gimp_image_remove_layer() behaves correctly now (see below).
Renamed floating_sel_reset() to floating_sel_activate_drawable().
Added g_return_if_fail() all over the place.
* app/core/gimpimage.[ch]: added new function gimp_image_owns_item()
which return TRUE if the passed item is part of the image.
(gimp_image_add_layer): emit "floating_selection_changed" here if
needed.
(gimp_image_remove_layer): emit "floating_selection_changed" if
needed, don't try to activate a layer if we called
floating_sel_activate_drawable().
This is the real fix for bug #132162.
* app/core/gimpimage-undo-push.c (undo_pop_layer): apply the same
fixes as to gimp_image_add,remove_layer(). Don't call
gimp_drawable_invalidate_preview() on the previously active layer
because that's done by gimp_image_set_active_layer() now.
* app/xcf/xcf-load.c: remember the "floating_sel_drawable" in the
XcfInfo struct and attach it *after* all layers and channels are
loaded to avoid attaching the floating selection to an
out-of-image drawable.
* app/core/gimp-edit.c (gimp_edit_paste)
* app/core/gimpdrawable-transform.c (gimp_drawable_transform_affine,
gimp_drawable_transform_flip, gimp_drawable_transform_rotate)
* app/core/gimpselection.c (gimp_selection_float)
* app/text/gimptext-compat.c (text_render): added checks for
gimp_image_owns_item() in all functions which can produce
floating selections.
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/floating_sel.pdb
* tools/pdbgen/pdb/selection.pdb
* tools/pdbgen/pdb/text_tool.pdb
* tools/pdbgen/pdb/transform_tools.pdb: added checks for
gimp_item_owns_image() and return an execution error if invoked
with a drawable which is not part of the image.
* app/pdb/edit_cmds.c
* app/pdb/floating_sel_cmds.c
* app/pdb/selection_cmds.c
* app/pdb/text_tool_cmds.c
* app/pdb/transform_tools_cmds.c: regenerated.
2004-01-15 Michael Natterer <mitch@gimp.org>
Fixed bug #78732 (don't paste off screen):
* app/display/gimpdisplayshell-transform.[ch]: added new function
gimp_display_shell_untransform_viewport() which returns the
visible rectangle of the image in image coordinates.
* app/core/gimp-edit.[ch] (gimp_edit_paste): added viewport
parameters and changed positioning of the pasted layer as follows:
- if there is a selection, center on the selection (just as before).
- if there is no viewport, center on the active drawable.
- if the viewport intersects with the active drawable, center
on the intersection.
- if the viewport does *not* intersect with the active drawable,
center on the active drawable (off-screen, but better than pasting
something that will be invisible due to floating selection clipping).
- if there is no active drawable, center on the viewport.
- if there is no active drawable and no viewport, center on the image.
* app/widgets/gimpbufferview.c (gimp_buffer_view_paste_clicked)
(gimp_buffer_view_paste_into_clicked)
* app/display/gimpdisplayshell-dnd.c (gimp_display_shell_drop_buffer)
* app/gui/edit-commands.c (edit_paste_cmd_callback)
(edit_paste_into_cmd_callback): ask the shell for the viewport
and pass it to gimp_edit_paste().
* app/display/gimpdisplayshell-dnd.c
(gimp_display_shell_drop_drawable): center the created layer on
the viewport.
* app/tools/gimpmovetool.c (gimp_move_tool_button_release): use
gimp_display_shell_untransform_viewport() (its code was taken from
here).
* tools/pdbgen/pdb/edit.pdb: pass "no viewport" to gimp_edit_paste().
* app/pdb/edit_cmds.c: regenerated.
2004-01-06 Michael Natterer <mitch@gimp.org>
Enabled skipping enum values for either the PDB or GType
registration (don't always skip both targets):
* tools/gimp-mkenums: skip enum values only if there is a literal
"skip" (don't match "pdb-skip").
* tools/pdbgen/enumgen.pl: skip only "pdb-skip" values, not "skip"
ones.
* app/base/base-enums.h
* app/core/core-enums.h
* app/paint/paint-enums.h
* libgimpbase/gimpbaseenums.h: use the right "pdb-skip"/"skip"
combination to skip enum values. Changed comments accordingly.
Cleaned up the fill functions:
* app/core/core-enums.[ch]: added GIMP_PATTERN_FILL enum value to
the GimpFillType enum. Don't export GIMP_NO_FILL to the PDB
because it's completely useless to export a NOP.
* app/core/gimp-edit.c (gimp_edit_fill, gimp_edit_fill_internal):
handle pattern fill requests.
* app/core/gimpdrawable.[ch] (gimp_drawable_fill): added GimpPattern
parameter and fill with it if it's non-NULL.
(gimp_drawable_fill_by_type): handle pattern fill and pass the
current pattern to gimp_drawable_fill().
* app/text/gimptextlayer.c: changed accordingly.
* app/gui/edit-commands.c
* app/gui/image-menu.c: use gimp_edit_fill() instead of
gimp_drawable_bucket_fill() for FG, BG and pattern filling.
* libgimp/gimpcompat.h
* plug-ins/script-fu/siod-wrapper.c: removed NO_IMAGE_FILL compat
enum value. It should have never been exported to the PDB.
* app/pdb/drawable_cmds.c
* app/pdb/edit_cmds.c
* libgimp/gimpenums.h
* plug-ins/pygimp/gimpenums.py
* plug-ins/script-fu/script-fu-constants.c
* tools/pdbgen/enums.pl: regenerated.
2003-12-09 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.[ch]: removed enum value
GIMP_UNDO_GROUP_EDIT_COPY (I have no idea why we used to push an
undo group around "Copy"...).
* app/core/gimp-edit.c (gimp_edit_extract): new utility function
which does everything needed for cut and copy and does not push an
undo group for copy.
(gimp_edit_cut,copy): removed lots of duplicated code and call
gimp_edit_extract().
(gimp_edit_paste,paste_as_new): no need to call
gimp_item_set_image() on newly created layers.
2003-10-08 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.c (gimp_edit_fill_internal): new utility
function which does everything gimp_edit_clear() and
gimp_edit_fill() do but doesn't fail to:
- fill an indexed drawable with white.
- fill a drawable with alpha with transparency.
(gimp_edit_clear)
(gimp_edit_fill): use gimp_edit_fill_internal().
* app/core/gimpdrawable.c (gimp_drawable_[apply,replace]_region):
added more g_return_if_fail(required_parameter != NULL).
2003-10-06 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: added new virtual functions
GimpDrawable::get_active_components(), apply_region() and
replace_region().
* app/core/Makefile.am
* app/core/gimpdrawable-combine.[ch]: new files containing
apply_region()'s and replace_region()'s default implementation.
They are identical to the ones removed from GimpImage except that
they don't mask the selection with itself (bug #107949).
* app/core/gimpchannel.c
* app/core/gimplayer.c: implement get_active_components().
* app/core/gimpchannel.c: implement apply_region() and
replace_region() and invalidate the channel's boundary
before upchaining (bug #107949).
* app/core/gimpimage.[ch]: removed gimp_image_apply_image(),
gimp_image_replace_image() and gimp_image_get_active_components().
* app/core/gimpimage-undo-push.c (undo_pop_image): invalidate
boundary and bounds if the drawable is a channel (bug #107949).
(undo_pop_mask)
(undo_pop_channel_mod): finish previous commit :)
* app/core/gimp-edit.c
* app/core/gimpdrawable-blend.c
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpdrawable-stroke.c
* app/core/gimpimagemap.c
* app/core/gimplayer-floating-sel.c
* app/paint/gimppaintcore.c
* app/tools/gimpinktool.c: changed accordingly.
2003-10-06 Michael Natterer <mitch@gimp.org>
Treat changes to the selection like changes to any other drawable:
* app/core/gimpchannel.c
* app/core/gimpchannel-combine.c: call gimp_drawable_update() after
changing the channel.
* app/core/gimpimage.[ch]: added struct GimpImageFlushAccumulator
with one member "gboolean mask_changed". Connect to "update" of
the selection and set accum.mask_changed to TRUE in the callback.
Added default implementation for GimpImage::flush() and emit
"mask_changed" there.
Unrelated:
* app/core/gimpimage.h: removed GimpGuide struct...
* app/core/gimpimage-guides.h: ...and added it here.
* app/core/gimpimage-undo-push.c (undo_pop_mask)
(undo_pop_channel_mod): don't distinguish between selection and
non-selection channels and just call gimp_drawable_update().
* app/core/gimpundo.h
* app/core/gimpimage-undo.c: removed "gboolean mask_changed" from
the GimpUndoAccumulator struct since we don't have to care about
that signal explicitly any more.
* app/display/gimpdisplay-foreach.[ch]: removed gimp_displays_flush().
* tools/pdbgen/pdb/display.pdb (displays_flush_invoker): call
gimp_image_flush() on all images so the flush accumulator is
honored.
This generalization enables the removal of more special purpose
code which was needed to treat the selection different:
* app/core/gimpimage-mask-select.[ch]: removed...
* app/core/gimpchannel-select.[ch]: ...and added under a new name
because it's not selection specific any more.
* app/core/gimpimage-mask.[ch]: removed...
* app/core/gimpselection.[ch]: ...added the two remaining
functions here. Removed all calls to gimp_image_mask_changed().
* app/core/Makefile.am
* app/core/gimp-edit.c
* app/core/gimpdrawable-transform.c
* app/core/gimpimage-scale.c
* app/core/gimpimage-snap.c
* app/display/gimpdisplayshell.c
* app/gui/channels-commands.c
* app/gui/layers-commands.c
* app/gui/select-commands.c
* app/gui/vectors-commands.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpellipseselecttool.c
* app/tools/gimpfreeselecttool.c
* app/tools/gimpfuzzyselecttool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimprectselecttool.c
* app/tools/gimptransformtool.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpvectorstreeview.c
* app/xcf/xcf-save.c
* tools/pdbgen/pdb/paths.pdb
* tools/pdbgen/pdb/selection.pdb
* tools/pdbgen/pdb/selection_tools.pdb: changed accordingly.
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpimage-colormap.c
* app/core/gimplayer-floating-sel.c
* app/core/gimplayer.c
* app/gui/image-menu.c
* app/paint/gimppaintcore.c
* app/tools/gimpcroptool.c
* app/tools/gimpinkoptions.c
* app/tools/gimpvectortool.c: removed useless and/or obsolete
#includes.
* app/pdb/display_cmds.c
* app/pdb/paths_cmds.c
* app/pdb/selection_cmds.c
* app/pdb/selection_tools_cmds.c: regenerated.
2003-09-05 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs.[ch]: removed function map_to_color()
since it does not belong here and the two places using it look much
cleaner when doing that stuff themselves.
* app/core/gimpdrawable-preview.c: cleanup.
(gimp_drawable_preview_scale): do the indexed palette lookup here
instead of calling map_to_color().
* app/core/gimpimage.c (gimp_image_get_color): transform the
colors here instead of calling map_to_color().
* app/core/gimpimage.[ch] (gimp_image_get_color): reordered
parameters src parameters are before dest parameters.
Made the src color const.
(gimp_image_transform_color): reordered so src parameters are
*after* dest parameters (since this function operates on the dest
image and it makes sense to have the dest parameters
together). Made the src color const here, too.
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpdrawable.c
* app/core/gimpimage-contiguous-region.c
* app/core/gimpimage-projection.c
* app/core/gimpimagemap.c
* app/core/gimplayer.c
* app/core/gimppalette-import.c
* app/paint/gimpclone.c
* app/paint/gimppaintcore.c: changed accordingly.
* app/core/gimpedit.c (gimp_edit_cut,copy): simplified by
moving the "cropped" variable to a local scope.
* app/core/gimpimage-mask.c: calling gimp_image_update() followed
by gimp_viewable_imvalidate_preview(drawable) is equal to calling
gimp_drawable_update() directly.
2003-09-05 Sven Neumann <sven@gimp.org>
* app/base/gimplut.[ch] (gimp_lut_free): free the memory allocated
for the GimpLut structure. Removed trailing whitespace.
* app/core/gimpbuffer.c: cosmetics.
* app/core/gimpedit.[ch]: let gimp_edit_cut() and gimp_edit_copy()
return a pointer to the global cut buffer instead of creating a
GimpBuffer which was leaked by most callers.
* app/gui/edit-commands.c: changed accordingly.
* libgimpwidgets/gimpquerybox.[ch] (string_query_box_ok_callback):
removed a superfluous g_strdup(); made GimpQueryStringCallback take
a const gchar* pointer.
* app/gui/edit-commands.c
* app/gui/file-commands.c
* app/gui/palettes-commands.c: changed accordingly.
2003-09-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-mask.[ch]: removed the feather(), sharpen(),
all(), invert(), border(), grow() and shrink() wrappers.
* app/core/gimpselection.[ch]: changed gimp_selection_invalidate()
and gimp_selection_push_undo() to take GimpChannel parameters, not
GimpSelection ones. They will be made virtual GimpChannel
functions anyway.
* app/core/gimpedit.c
* app/gui/select-commands.c
* app/widgets/gimpselectioneditor.c
* tools/pdbgen/pdb/selection.pdb: changed accordingly.
* app/pdb/selection_cmds.c: regenerated.
2003-05-26 Michael Natterer <mitch@gimp.org>
* app/base/tile-manager-private.h: added "gint ref_count" to the
TileManager struct.
* app/base/tile-manager.[ch]: replaced tile_manager_destroy()
by tile_manager_ref() and tile_manager_unref().
* app/core/gimpimage-undo-push.c: ref the tile managers stored in
the undo system and DON'T destroy them if no undo could be pushed.
Should fix the remaining crashes with undo disabled like in
bug #9350.
(!!!) Note that the tiles passed to gimp_image_undo_push_image()
and gimp_drawable_push_undo() as well as the tile managers of
drawables passed to gimp_image_undo_push_[layer|channel]_mod()
must be unref'ed by the caller now.
* app/core/gimpdrawable-transform.c (gimp_drawable_transform_paste):
don't take ownership of the passed tiles but ref them if needed.
(!!!) Callers must unref the passed tiles themselves now.
* app/core/gimpbuffer.c
* app/core/gimpdrawable-blend.c
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpdrawable-offset.c
* app/core/gimpdrawable.c
* app/core/gimpedit.c
* app/core/gimpimage-convert.c
* app/core/gimpimage-mask.c
* app/core/gimpimage-projection.c
* app/core/gimpimage.c
* app/core/gimpimagemap.c
* app/core/gimplayer-floating-sel.c
* app/core/gimplayer.c
* app/paint/gimppaintcore.c
* app/text/gimptextlayer.c
* app/tools/gimpinktool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimptransformtool-undo.c
* app/tools/gimptransformtool.c: changed accordingly.
2003-03-25 Sven Neumann <sven@gimp.org>
* Makefile.am
* gimpintl.h: removed this header file.
* gimpmiscui.c: include libgimp-intl.h.
* gimp.c (gimp_main): call setlocale() and bind to the libgimp
textdomain so that plug-ins don't need to do that explicitely.
* libgimp/stdplugins-intl.h: added the functionality that used to
live in gimpintl.h and removed the libgimp related stuff. Got rid
of the INIT_I18N_UI() macro.
* plug-ins/*/*.c: removed all occurances of INIT_I18N_UI().
Plug-ins simply call INIT_I18N() once in their run() function.
* plug-ins/script-fu/script-fu-intl.h: added the functionality
that used to live in gimpintl.h and removed the libgimp related
stuff.
* app/Makefile.am
* app/gimp-intl.h: new file that defines the gettext macros for
the GIMP core.
* app/*/*.c: include gimp-intl.h instead of libgimp/gimpintl.h.
* plug-ins/script-fu/scripts/test-sphere.scm: fixed typos.
2003-02-17 Michael Natterer <mitch@gimp.org>
* app/core/gimpedit.c (gimp_edit_fill): pass more detailed
undo_desc strings instead of always "Fill".
* app/core/gimpimage-mask-select.c: changed undo_desc strings
to match the already existing blurbs of the selection tools.
2003-01-05 Manish Singh <yosh@gimp.org>
* many files in app, modules and libgimp*: cleanup, removed unecessary
G_OBJECT() casts. Should do the same for plug-ins, when more of them
get undeprecated.
2003-01-02 Michael Natterer <mitch@gimp.org>
Replaced Garry's fix for bug #98843 by a more general solution
which stops the active tool when an undo group start is pushed:
* app/core/gimpimage.[ch]: removed the "layer_merge" signal
and added "undo_start" instead.
* app/undo.c: emit "undo_start" in undo_push_group_start()
_before_ checking if gimage->undo_on is TRUE.
* app/tools/tool_manager.c: connect to "undo_start" and HALT the
active tool if neccessary.
* app/core/core-types.h: added EDIT_COPY_UNDO_GROUP.
* app/core/gimpedit.c: push an undo group around the copy
operation. Will probably have to add more undo group types to wrap
other critical image modifications with.
* app/core/gimpimage-merge.c
* app/gui/convert-dialog.c
* app/gui/edit-commands.c
* app/gui/test-commands.c
* app/tools/gimpimagemaptool.c: removed all special code to
stop the active tool.
2002-08-20 Michael Natterer <mitch@gimp.org>
Make sure the selection (gimpimage-mask.c) functionality is really
built *on top* of the GimpChannel functionality:
* app/undo.[ch]: renamed undo_push_image_mask() to
undo_push_mask() and generalized it's API to take a GimpChannel
param so undos can be pushed for channels which are not the
image's selection. Simplified the API and added code which copies
the region of interest instead of leaving this to callers.
* app/undo_types.h: s/IMAGE_MASK_UNDO/MASK_UNDO/
* app/undo_history.c: changed accordingly.
* app/core/gimpchannel.[ch]: don't #include "gimpimage-mask.h".
Changed gimp_channel_push_undo() to really push a channel undo,
not a selection undo. Added "gboolean push_undo" params to all
functions which are called from gimpimage-mask.c. Various cleanups
and optimizations. Added /*< proxy-foo >*/ stuff to the header so
we export just the struct itself to libgimpproxy. Added accessors
gimp_channel_[get|set]_show_masked().
* app/core/gimpimage-mask.[ch]: renamed gimp_image_mask_undo() to
gimp_image_mask_push_undo(). Call it before calling GimpChannel
functions which modify the mask, also call all GimpChannel
functions with push_undo = FALSE. Emit gimp_image_mask_changed()
after each operation instead of calling it in
gimp_image_mask_invalidate(). Removed gimp_image_mask_none()
because it is the same as gimp_image_mask_clear().
General cleanup.
* app/core/gimpimage-mask-select.c
* app/core/gimpimage-qmask.c: changed accordingly.
* app/core/gimpedit.c: call gimp_image_mask_clear(), not
gimp_channel_clear (gimp_image_get_mask()).
* app/core/gimpimage-crop.c
* app/core/gimpimage-resize.c
* app/core/gimpimage-scale.c: call gimp_image_mask_changed()
* app/gui/channels-commands.c
* app/gui/select-commands.c
* app/tools/gimptexttool.c
* tools/pdbgen/pdb/channel.pdb
* tools/pdbgen/pdb/selection.pdb: follow GimpChannel and
gimp_image_mask* API changes.
* app/pdb/channel_cmds.c
* app/pdb/selection_cmds.c
* libgimpproxy/gimpchannel.h: regenerated.
Unrelated:
* app/core/gimpimage.c: call gimp_drawable_push_undo() instead of
undo_push_image() directly.
2002-05-21 Sven Neumann <sven@gimp.org>
* app/core/gimplayer.[ch] (gimp_layer_new_from_tiles): added a
GimpImageType parameter to specify the desired drawable type. This
is needed when pasting into layer masks.
* app/core/gimpdrawable-transform.c
* app/core/gimpedit.c
* app/core/gimpimage-mask.c: changed accordingly.