2000-12-28 Michael Natterer <mitch@gimp.org>
* app/channel.[ch]
* app/drawable.h
* app/gimpdrawable.[ch]
* app/gimpdrawableP.h
* app/gimpimage.[ch]
* app/gimpimageP.h
* app/layer.[ch]
* app/layer_pvt.h: started a major cleanup of all image/drawable
files. Added tons of "const GimpImage *" declarations and properly
formated the headers.
* app/bezier_select.c
* app/channels_dialog.c
* app/crop.c
* app/fileops.[ch]
* app/fuzzy_select.c
* app/gdisplay.c
* app/layers_dialog.c
* app/move.c
* app/paint_funcs.[ch]
* app/qmask.c
* app/undo.c: changed accordingly plus the usual portion of coding
style paranoia. This is not finished but Sven promised to buy me
a beer if I commit now ;)
2000-12-27 Michael Natterer <mitch@gimp.org>
* app/gimpimage.c: gimp_image_merge_layers(): apply the layer mask
only if layer->apply_mask is TRUE, cleanup.
2000-12-27 Michael Natterer <mitch@gimp.org>
* app/gimage.h
* app/gimpimage.[ch]: implemented gimp_image_get_layer_by_index(),
small cleanups.
* app/commands.c
* app/layers_dialog.c: use the new function instead of accessing
the layer list directly.
2000-12-18 Sven Neumann <sven@gimp.org>
Jens Lautenbacher <jtl@gimp.org>
* app/Makefile.am
* app/gimpbrushlistP.h
* app/gimpbrushpipeP.h
* app/gimpobjectP.h: removed these three files
* app/parasitelistP.h
* app/channels_dialog.c
* app/docindex.c
* app/gimpdrawable.c
* app/gimpdrawableP.h
* app/gimpimage.c
* app/gimpimageP.h
* app/gimplist.[ch]
* app/gimpobject.c
* app/gimpobject.h
* app/gimpsetP.h: changed according to header removal
* app/airbrush.c
* app/brush_select.[ch]
* app/brushes_cmds.c
* app/gimpbrush.[ch]
* app/gimpbrushgenerated.[ch]
* app/gimpbrushlist.[ch]
* app/gimpbrushpipe.[ch]
* app/gimpcontextpreview.c
* app/paint_core.c
* app/paintbrush.c
* app/pencil.c
* tools/pdbgen/pdb/brushes.pdb: Big Brushes Cleanup.
The GimpBrush* object hierarchy and the file formats were broken by
"design". This made it overly difficult to read and write pixmap
brushes and brush pipes, leading to the situation that The GIMP was
not able to read it's very own file formats. Since the GimpBrush
format did support arbitrary color depths, the introduction of a
file format for pixmap brushes was unnecessary.
The GimpBrushPixmap object is dead. GimpBrush has an additional
pixmap temp_buf and handles pixmap brushes transparently. The file
format of pixmap brushes is not any longer a grayscale brush plus
a pattern, but a simple brush with RGBA data. The old brushes can
still be loaded, but the .gpb format is deprecated.
GimpBrushPipe derives from GimpBrush. The fileformat is still a text
header, followed by a number of brushes, but those brushes are stored
in the new GimpBrush format (no pattern anymore). The pipe does not
care about the depth of the contained GimpBrushes, so we get
grayscale BrushPipes for free. Since the brush loader still loads the
old format, old .gih files can also still be loaded.
Since the brushes in the GimpBrushPipe do not any longer contain a
pointer to the pipe object, we do only temporarily switch brushes
in the paint_core routines. This is not very elegant, but the best
we can do without a major redesign.
* app/patterns.[ch]: changed the loader to work with a filedescriptor
instead of a filehandle to make it work with the new brush loading
code.
* plug-ins/common/.cvsignore
* plug-ins/common/Makefile.am
* plug-ins/common/plugin-defs.pl
* plug-ins/common/gih.c: new plug-in that saves GIH files in the
new format (loader will follow soon)
* plug-ins/common/gpb.c: removed since Pixmap Brushes are no longer
supported as a special file format.
* plug-ins/common/gbr.c: load and save brushes in the new brush format
which allows RGBA brushes too.
* plug-ins/common/pat.c: load and save grayscale patterns too
2000-12-15 Sven Neumann <sven@gimp.org>
* app/gimppreviewcache.[ch]: added new function gimp_preview_scale().
* app/channel.c
* app/channels_dialog.c
* app/gimpimage.c
* app/layer.c
* app/layers_dialog.c
* app/lc_dialog.c
* app/nav_window.c: unified preview drawing code. Previews are never
generated larger than the canvas size. Image and channel previews are
scaled up to the desired size, so does the navigation window. The
layer previews are not yet scaled up again since we can not use
gimp_preview_scale here. I have removed the preview_cache priming
code since we don't need it any longer and it caused bad results.
2000-12-14 Sven Neumann <sven@gimp.org>
* app/layers_dialog.c
* app/lc_dialog.c
* app/nav_window.c: another try on bug #31098. This time limited the
preview scale ratio in the calling functions. Please test!
* app/gimpimage.c: small cleanup
2000-12-14 Sven Neumann <sven@gimp.org>
* app/gimpimage.c
* app/layer.c
* app/layers_dialog.c
* app/nav_window.c: cleaned up these files while trying to find a
fix for #31098. No real changes, the bug is still present :-(
Mon Dec 11 22:52:43 GMT 2000 Andy Thomas <alt@gimp.org>
* app/gimpimage.c
* app/layers_dialog.c
Backed out some changes that caused problems with the Nav preview
and small sized images.
2000-12-11 Sven Neumann <sven@gimp.org>
* app/edit_selection.c
* app/gimpimage.c
* app/layer_select.c
* app/layers_dialog.c: when computing a preview, limit the scale ratio
to a maximum of 1.0. By doing so we avoid to scale drawables up if the
image (canvas) size becomes larger than the drawable. Fixes bug #31098.
* app/gimppreviewcache.[ch]: indented
2000-12-03 Sven Neumann <sven@gimp.org>
* app/gimpimage.c: do not set the layer mode of the bottom layer to
NORMAL_MODE if it is DISSOLVE_MODE since the latter does not work
on the projection with the lower layer but on the layers alpha
channel. Fixes bug #7829.
2000-08-23 Sven Neumann <sven@gimp.org>
* app/fileops.c: make the file_save dialog sensitive again if the
user clicked "No" when asked if he wishes to overwrite a file.
* app/gimpimage.c: when saving an undoable parasite, just do it
without calling undo_push_cantundo(). Undoable parasites are used
by many save plug-ins to attach a comment, but this operation
shouldn't prevent the user from using the undo_stack afterwards.
The JPEG plug-in has an additional bug that I couldn't solve, so
undoing after a Save As JPEG is still impossible.
* app/undo_history.c: lame attempt to draw the clean symbol at the
correct undo step. Not perfect but much better as before...
* app/layers_dialog.c: Disable the "Add Layermask" menuentry
for indexed images.
* app/gimpimage.c: Leave gimp_image_add_layer_mask(...) after
spitting out messages when trying to add a layermask to an
indexed image.
-Yosh
* app/gimpimage.c
--Fixed Fujita Yuji's bug (reported 27May2000 to
gimp-developer) -larger than 64x64 brush and
selection mask crashes smudge/dodgeburn/convolve
This was a rowstrides bug in gimp_image_replace_image.
2000-04-26 Michael Natterer <mitch@gimp.org>
* app/color_select.c
* app/colormaps.[ch]
* app/context_manager.c: removed unused global variables
[foreground|background]_pixel and [old|new]_color_pixel.
Initialize the colormap and visual stuff with GdkRGB instead of
GtkPreview functions (which are deprecated).
* app/[62 files]: removed #include's (started with colormaps.h and
couldn't stop). Also ordered them consistently and did some small
unrelated cleanups.
Removed variuos <stdlib.h> et.al. but checked the files carefully
before doing so. If I was too radical and you get warnings on your
platform, please flame me or just put them back :)
2000-04-03 Michael Natterer <mitch@gimp.org>
* app/gimpdnd.[ch]
* app/channels_dialog.c
* app/layers_dialog.c: removed the GdkGC parameter from
gimp_dnd_set_drawable_preview_icon() since it's no longer used.
* app/gimpimage.c: dirty the view correctly after applying the
layer mask. Don't gdisplays_flush() because it's the job of the
caller.
* app/layers_dialog.c: when applying a layer mask, flush either
the display or just the layer_widget, depending on the previous
visibility state of the mask. Cleanups.
* plug-ins/print/gimp_color_window.c
* plug-ins/print/gimp_main_window.c: including config.h re-enables
i18n.
* app/gimpdrawable.c: gimp_drawable_get_color_at() now silently
returns NULL again if the coordinates are out of range. A lot of
code using this function relies on this feature and correctly
checks the return value. No need to emit critical warnings here.
The GTK_CHECK_TYPE macro test for obj != NULL, no need to do this
check twice. Removed lots of unnecessary calls to g_return_if_fail().
* app/color_picker.c: with the old behaviour of
gimp_drawable_get_color_at() the code is a bit simpler.
* app/fuzzy_select.c: fuzzy_select relied on drawable_offsets()
returning off_x = off_y = 0 if drawable == NULL. Decided to change
this here, fixes bug #7077.
* app/gimpimage.[ch]: Even though we made bad experiences with the
changes in gimpdrawable.c, I have introduced similar argument checks
here.
* app/image_map.c: indentation
--Sven
2000-02-26 Garry R. Osgood <gosgood@idt.net>
* app/commands.c
* app/gimpimage.c
* app/layer.c
* app/layer.h
* app/resize.c
* app/resize.h
Aliasing artifacts that changed relative positions
of layers under scaling, giving rise to #5271, are
minimized by a new layer.c function,
layer_scale_by_factors(). Closes#5271. See
http://idt.net/~gosgood/gimp-patch/patch07.html for
further detail. See also usage documentation for
layer_scale() and layer_scale_by_factors() in
layer.c.
Provided logic for the Scale Image dialog box to
pre-check an image's layers for the possibility that
a particular scaling, s: 0 < s < 1, reduces a layer
dimension to zero. Should this case prevail, a
boolean dialog box warns the user of the
possibility. The user may (1) Cancel, returning
focus to Scale Image and the possibility of
corrective adjustment, or (2) OK the scaling. The
layers that will vanish upon the new scaling are
culled from the GimpImage::layers list first.
paths.c and did a general namespace cleanup:
s/PATHP/Path*/ s/PATHIMAGELISTP/PathList/ and friends.
Paths are now copied on image duplicate (fixes bug #5726).
Removed Path Tool and XInput Airbrush from the build and
renamed "Layers & Channels" to "Layers, Channels & Paths".
Applied patch from Wolfgang Hofer to xjt.c that enables loading
and saving of paths based on Andy's change explained below.
--Sven
Tue Feb 15 23:27:42 GMT 2000 Andy Thomas <alt@gimp.org>
* gimp/app/gimpdrawable.c
* gimp/app/channel.c
* gimp/app/layer.c
* gimp/app/channel.h
* gimp/app/layer.h
* gimp/app/gimpimage.c
* gimp/app/gimpimage.h
* gimp/app/gimpdrawable.h
* gimp/tools/pdbgen/pdb/paths.pdb
* gimp/tools/pdbgen/pdb/layer.pdb
* gimp/tools/pdbgen/pdb/channel.pdb
* gimp/tools/pdbgen/pdb/gimage.pdb
* gimp/app/channel_cmds.c
* gimp/app/gimage_cmds.c
* gimp/app/internal_procs.c
* gimp/app/layer_cmds.c
* gimp/app/paths_cmds.c
New gimp_*_set_tattoo procedures. This allows save/load plugins
to save/restore tattoo states of layers, channels and paths. Note the
internal tattoo state can also be set, however rigorous checks are
performed to make sure that the internal tattoo states of layer,
channels and paths are consistent and that the new state value is
newval > MAX(MAX(layertattoo),MAX(channeltattoo),MAX(pathtattoo)).
2000-02-07 Michael Natterer <mitch@gimp.org>
* app/*
* libgimp/*
* plug-ins/*
* tools/pdbgen/*: did a global s/GUnit/GimpUnit/ and
s/GimpSizeEntryUP/GimpSizeEntryUpdatePolicy/
* libgimp/gimpcolorspace.c: renamed the parameter names to match
the names in the header.
* libgimp/gimphelpui.h
* libgimp/gimpimage.c
* libgimp/gimpmatrix.h
* libgimp/gimpsizeentry.[ch]
* libgimp/gimpsizeentry.[ch]
* libgimp/gimpunit.[ch]
* libgimp/gimpunitmenu.[ch]
* libgimp/gimpwidgets.[ch]: added documentation and use g* types
all over the place (enables cross-referencing with the glib and
gtk+ html documentation).
* plug-ins/common/exchange.c
* plug-ins/common/max_rgb.c: small cleanups.
* plug-ins/common/mapcolor.c: the color buttons were attached in
the wrong order.
the way it is used. As the new name suggests it is only used
to count the number of displays associated with an image. It
is now impossible to delete an image that has an associated
display. You have to delete the display instead. Before this
change it was possible to delete an image through the PDB that
was created through the UI and bad things happened soon...
--Sven
1999-12-10 Garry R. Osgood <gosgood@idt.net>
* app/gimpimage.c
* app/undo.c
* app/undo_types.h
* docs/undo.txt
Changed sanity checks in undo_pop/free_layer_mask() to LAYER_MASK_ADD_UNDO
and LAYER_MASK_REMOVE_UNDO to be consistent with undo_push_layer_mask()
These now nvoke proper cleanup and release of GimpLayerMasks.
* docs/undo.txt: New file, an overview of undo logic written by
Austin Donnelly
* app/undo.c
* app/undo_types.h
* app/gimpimage.c : Introduced a new UndoType, UNDO_NULL, which maps
to zero, introducing that value into the enumerated types. Use the
type to signal type unknown/error/untyped conditions.
Full patch documentation at
http://idt.net/~gosgood/gimp-patch/patch02.html
* app/edit_selection.c: when moving layers/masks freeze the undo
after the first move to avoid that each and every small movements
puts an undo on the stack. Significantly speeds up layer moves
and especially the undo of a layer move.
* app/gdisplay.h: correct rounding errors
* app/gimpimage.c: correctly display floating selections in the
composite_preview instead of ignoring them
* app/channels_dialog.c
* app/layers_dialog.c
* app/lc_dialog.c: s/gtk_widget_draw/gtk_widget_queue_draw/
--Sven
Thu Oct 28 23:22:34 BST 1999 Andy Thomas <alt@gimp.org>
* app/gimpimage.c
Fixed memory leak with image is deleted.
* plug-ins/common/jpeg.c
Fixed the way the plugin added layers. Preview stuff does not now
get corrupted.
* app/gimpimage.c: don't free the old filename pointer till we're
all done, since we might be passed our own filename as a param
and reference it after freeing. The code didn't heed it's own
warning ;) (TigerT, this should fix that filename corruption bug)
-Yosh
Fri Oct 1 19:05:04 EDT 1999 Austin Donnelly <austin@gimp.org>
* app/gimpimage.c: Factored out common code from
gimp_image_{raise,lower}_layer and
gimp_image_{raise_layer_to_top,lower_layer_to_bottom}. They
now call gimp_image_position_layer() to do the real work.
* app/gimpimage.h: gimp_image_position_layer() takes extra arg to
tell whether an undo should be pushed.
* app/layers_dialog.c: reposition layer with undo.
* app/undo.c: new undo type for layer reposition. Layer rename
shouldn't dirty and clean the image twice!
* app/undo.h: prototype for undo_push_layer_reposition().
* app/undo_types.h: LAYER_REPOSITION_UNDO type.
Fri Oct 1 12:46:12 1999 Austin Donnelly <austin@gimp.org>
* gimprc.in: comment typo fix, plus add %D* to default
image-title-format string, so people get a '*' in the titlebar
if their image is dirty.
* app/fileops.c: initialise filename before using it.
* app/gdisplay.c: empty parameter list () is K&R - should be
stronger (void) in ANSI C.
* app/gimpdrawable.c: gimp_drawable_{dirty,clean} functions
removed - no one uses them anyway. Parasite undo type is
proper parasite undo type, not MISC_UNDO.
* app/gimpdrawableP.h: drawable dirty bit removed.
* app/gimpimage.c: don't change the resolution if there's no
difference from the old one. Call gdisplay_shrink_wrap() to
re-calculate scale factors and refresh the display on
resolution change. Layer undo doesn't have sub-types
anymore, uses main UndoType instead.
* app/layer.h: Remove LayerUndoType
* app/qmask.c: fix qmask undo so it actually works.
* app/undo.h: new types for undo_push_layer{,_mask} and
undo_push_qmask.
* app/undo.c: change way group boundaries are represented:
each Undo has a group_boundary boolean set to TRUE if this is
the start or the end of a group, and the type of the Undo is
the group's type. Within a group, each Undo keeps its own
type. This allows pop funcs and free funcs to do
type-specific things (eg needed by layer and channel stuff).
Don't maintain per-drawable dirty flags anymore. Floating
sel to layer and layer rename now uses meaningful undo types.
* app/undo_types.h: more specific undo types:
LAYER_{ADD,REMOVE}_UNDO, LAYER_MASK_{ADD,REMOVE}_UNDO,
LAYER_RENAME_UNDO, and PARASITE_{ATTACH,DETACH}_UNDO.
* app/undo_history.c: oops - undo stack was being placed into gtk
list in wrong order.
* app/edit_selection.c: push more descriptive LAYER_DISPLACE_UNDO
rather than MISC_UNDO.
* app/layers_dialog.c: better tagging of undo types
Mon Sep 20 12:51:30 EDT 1999 Austin Donnelly <austin@gimp.org>
Honest, guv, it's not a feature - it's a tightly integrated
package of undo system cleanups and fixes.
NEW FILES:
* app/undo_history.c: window showing recent undo (and redo) steps
available.
* app/undo_types.h: broken out of undo.h to fix circular includes.
MODIFIED FILES:
* app/Makefile.am: compile undo_history.c
* app/channel.h: use enum for channel undo type, not just magic
numbers.
* app/layer.h: same for layer undos.
* app/commands.c: edit_show_undo_history_cmd_callback() function to
pull up undo history window.
* app/commands.h: prototype for above.
* app/gdisplay.c: make undo / redo menu items sensitive according
to whether they would do anything. Would be easy to change
the text to say what would be undone/redone, but I don't know
the GTK.
* app/gimpimage.c: new signal emitted by gimage:
UNDO_EVENT. gimp_image_undo_event() function to emit it.
* app/gimpimage.h: prototype for above.
* app/gimpimageP.h: pushing_undo_group member is now an undo_type,
not an int. Keep undo history widget here too (if created).
* app/menus.c: add "Edit/Undo history..." to image menu.
* app/undo.c: new types: enums undo_type and undo_state rather than
ints and magic numbers. All undo_pop_* and undo_free_*
functions made static. New static function
undo_type_to_name(). Issue undo event signals on various
important events (eg undo pushed, undo popped etc).
undo_push() now takes a "dirties_image" arg to say whether
image should be dirtied. Layer moves now dirty the image. A
couple of g_return_if_fails () on undo_pop and undo_redo to
assert we're not in the middle of an undo group.
undo_get_{undo,redo}_name() to peek at names of top items on
undo and redo stacks resp. undo_map_over_{undo,redo}_stack()
to run a function for each item or group on stack. Layer and
channel undos use symbolic names rather than 0 or 1. Array
mapping undo types to names.
* app/undo.h: split out undo types to undo_types.h. Prototypes
for functions described above. undo_event_t enum.
undo_history_new() prototype lives here too.
Random other fixes:
* app/gimpdrawable.c
* app/image_render.c: default labels in switches to keep egcs happy.
* app/nav_window.c: some fixes to (sort of) cope with image res !=
screen res. Still needs work to handle non-square pixels
properly.
* app/paths_dialog.c: bad idea to call gimp_image_dirty()
directly. Even though it's currently commented out.
Wed Aug 25 02:40:39 CDT 1999 Shawn T. Amundson <amundson@gimp.org>
* app/image_new.[ch]: Added new files, the UI independant part of
new image dialog.
* app/file_new_dialog.[ch]: uses image_new stuff now. Alot
changed. No UI changed. Different behavior is a bug, as
this is only for UI separation.
* app/gimpimage.[ch]: Added gimp_image_get_width () and
gimp_image_get_height ().
* app/global_edit.c: Call a function in image_new instead of
file_new_dialog for updating the status of the cut buffe.
Mon Aug 23 10:15:32 EDT 1999 Austin Donnelly <austin@gimp.org>
Dirty flag now correct in all cases. Can be displayed in image
window title too. See NOTE near gimp_image_dirty() for details.
* app/fileops.c: gimp_image_clean_all() after reverting an image.
* app/gdisplay.c: register handlers for gimage dirty and clean
signals to update image title. New image-title-format
expansion: %Dx expands to x if the image is dirty.
* app/gdisplay_ops.c: gimage->dirty flags != 0 is the correct
condition to test to see if an image is dirty.
* app/gimpdrawable.c: gimp_image_dirty() should never be called
except from an undo_push_* function. Call
undo_push_cantundo() if you want to dirty the image but can't
be bothered writing an undo handler (be ashamed of yourself!).
* app/gimpimage.c: new gimage signal: clean. Emitted when an undo
operation takes place. Gimage changes when either dirty or
clean is emitted, so if you need to update previews etc, look
for both! Move group_count into gimage structure, since
leaving it as a static in undo.c is bad if two undo groups are
started on different images at the same time. More changes
of gimp_image_dirty() to undo_push_cantundo()
(parasite-related, plus layer moves). See the NOTE on dirty
counter near gimp_image_dirty() for the full story.
gimp_image_dirty() and gimp_image_clean() simplified - counter
can go negative.
* app/gimpimageP.h: group_count moved from undo.c
* app/layers_dialog.c: push undo for layer name change, rather
than dirtying the image.
* app/undo.c: layer rename undo functions
added. undo_push_cantundo() convenience functions added.
group_count made per-gimage since everything else is. When
blowing away redo stack, make image infinitely dirty if redo
info contained file save point.
* app/undo.h: added undo_push_layer_rename() and
undo_push_cantundo().
* TODO: added idea for undo history window.
1999-08-22 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/color_area.[ch]
* app/color_panel.[ch]
* app/gimpdnd.[ch]: enabled dnd for colors (compatible with the
standard gtk/gnome color dnd). The color selection is now invoked
on a real click, not on button_down to avoid confusion with dnd.
* app/channels_dialog.c
* app/disp_callbacks.c
* app/interface.c
* app/layers_dialog.c: minor dnd updates/fixes.
* app/channel.[ch]
* app/channel_pvt.h
* app/docindex.[ch]
* app/docindexif.[ch]
* app/drawable.[ch]
* app/floating_sel.c
* app/gimage.[ch]
* app/gimage_mask.c
* app/gimpdrawable.[ch]
* app/gimpdrawableP.h
* app/gimpimage.[ch]
* app/gimpimageP.h
* app/layer.[ch]
* app/layer_pvt.h
* app/undo.c
* app/xcf.c: wanted to do some s/int/gboolean/ in the layer files
where appropriate and found myself spending the whole night doing
a big code review for layers/channels/drawables/images:
s/int/gboolean/, s/<type>/g<type>/, lots of indentation, removed
some old global variables and deprecated functions, #include
cleanups, proper prototypes, copyright headers, ...
Sat Aug 21 16:53:17 BST 1999 Adam D. Moss <adam@gimp.org>
* plug-ins/common/jpeg.c: Preview layers need to be alpha-padded,
since they're not on the bottom of the stack. That's a GIMP rule.
Plus... use new API functions gimp_image_{freeze,thaw}_undo() to avoid
the dilemma of either consuming a squillion superfluous tiles or
clobbering the whole undo stack.
* app/gimage.h
* app/gimage_cmds.c
* app/gimpimage.c
* libgimp/gimp.h
* libgimp/gimpimage.c: New API functions
gimp_image_{freeze,thaw}_undo() to avoid the above twin evils.
Similar to gimp_image_{disable,enable}_undo() but without
clobbering the undo stack (I would have simply changed the latter,
but too many plugins seem to rely on that behaviour). See the PDB
docs for slightly more information.
1999-08-20 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/Makefile.am
* app/gimpdnd.c: new file. Contains a function which creates dnd
preview icons for all kinds of drawables.
* app/gimpdnd.h: added the new dnd types.
* app/channels_dialog.c: same dnd functions as in the layers
dialog. Fixed channels_dialog_flush(). Code cleanup.
* app/layers_dialog.c: enabled dnd for layer masks.
* app/disp_callbacks.c
* app/interface.c: dnd code generalization. The toolbox and the
display accept drop of any kind of drawable now.
* app/gimage.h
* app/gimpimage.[ch]: new function gimp_image_position_channel().
* app/layer.[ch]: new function layer_mask_get_layer().
* app/*.[ch]: Actually use the enum types GimpImageType,
GimpImageBaseType, LayerModeEffects, PaintApplicationMode,
BrushApplicationMode, GimpFillType and ConvertPaletteType, instead
of just int or gint. Hopefully I catched most of the places
where these should be used.
Add an enum ConvolutionType, suffix the too general constants
NORMAL, ABSOLUTE and NEGATIVE with _CONVOL. Use NORMAL_MODE
instead of NORMAL in some places (this was what was intended). Fix
some minor gccisms.
* app/apptypes.h: New file. This file contains the above
enumeration types, and some opaque struct typedefs. It was
necessary to collect these in one header that doesn't include
other headers, because when we started using the above mentioned
types in the headers, all hell broke loose because of the
spaghetti-like cross-inclusion mess between headers.
(An example: Header A includes header B, which includes header C
which includes A. B uses a type defined in A. This is not defined,
because A hasn't defined it yet at the point where it includes B,
and A included from B of course is skipped as we already are
reading A.)
1999-07-27 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/commands.c
* app/desaturate.[ch]
* app/equalize.[ch]: no need to pass the image as a void pointer
to desaturate and equalize.
* app/gimage.h
* app/gimpimage.[ch]: new function gimp_image_position_layer().
* app/layers_dialog.c: move layers with drag'n'drop.
* app/makefile.cygwin
* app/makefile.msc
* plug-ins/makefile.cygwin
* plug-ins/makefile.msc
* modules/makefile.cygwin
* modules/makefile.msc
* tools/gcg/makefile.cygwin: Various updates. GCC-compiled DLL
name change.
* app/context_manager.c: Include paint_options.h for prototype.
* app/gimpimage.c (gimp_image_initialize_projection): Break out of
loop as soon as possible.
* app/menus.c (menus_last_opened_cmd_callback): Check if referring
to entry not in list.
* app/module_db.c (valid_module_name): (Win32) Require module DLL
names to include name of compiler built with.
* app/paths_dialog.c (paths_draw_segment_points): No use to draw
lines if we have less that two points.
* app/qmask.c: Include stdio.h and floating_sel.h.
* libgimp/makefile.cygwin: New file.
* libgimp/Makefile.am: Distribute above file.
* libgimp/gimp.def: Update.
* libgimp/gimpenv.c (gimp_directory): Don't warn about missing
home directory on Win32, it is perfectly natural.
* plug-ins/sel2path/global.h: Bypass unused declarations, some
of which clash with functions in MSVCRT.
* plug-ins/sel2path/math.c
* modules/colorsel_water.c: Define M_PI if necessary.
* plug-ins/sel2path/sel2path.c: Include config.h and
glib.h. Define rint() if needed.
* plug-ins/sel2path/vector.c: Include glib.h (for hypot() renaming
on Win32; In the MS C runtime, as hypot() is non-ANSI, it's called
_hypot(), sigh).
* plug-ins/sinus/sinus_logo.h: Use indexed format, it is easier on
some compilers than the huge string.
Fri Jul 9 20:12:12 MEST 1999 Sven Neumann <sven@gimp.org>
* app/app_procs.c: applied a (modified) patch from
Shuji Narazaki <narazaki@gimp.org>
* app/gimpimage.c: applied a modified) patch from
Tom Rathborne <tomr@aceldama.com> that aligns guides on layer_resize
--Sven
* pixmaps/qmasknosel.xpm
* pixmaps/qmasksel.xpm: Ugly pixmaps that tigert promised to replace
* app/channel.[ch]
* app/channel_cmds.c : made some of the private structures accessible
through exported functions to keep things a bit clean
* app/interface.c
* app/gdisplay.[ch]
* app/gimpimageP.h
* app/gimpimage.[ch]
* app/undo.[ch]: added qmasks
* app/Makefile.am
* app/qmask.[ch]: added new files for qmask support
* tools/pdbgen/pdb/channel.pdb: changed some channel stuff to keep
things a bit more private
* cursors/{mouse1_u,mouse1_umsk}: new mouse cursor for intersection
operations.
* app/cursorutil.[ch], app/rect_select.c: use the new cursor.
* app/gimpimage.c: Applied layer removal bug fix from
David Le Corfec, <lecorfec@etudiant.univ-mlv.fr>
* plug-ins/gdyntext/{font_selection.c, gdyntext.c, gdyntext_ui.c}:
replaced snprintf with g_snprintf.
* plug-ins/jpeg/jpeg.c: updated to work with the double precision
resolutions.
1999-05-22 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/[all files with resolution info]
* libgimp/gimp.h
* libgimp/gimpimage.c
* libgimp/gimpsizeentry.[ch]
* libgimp/gimpunit.[ch]
* plug-ins/newsprint/newsprint.c
* plug-ins/pgn/png.c
* plug-ins/tiff/tiff.c: double instead of float for all resolution
and unit-factor variables.
* app/commands.c
* app/crop.c
* app/interface.c
* app/layers_dialog.c
* app/move_tool.c
* app/resize.c
* app/rotate_tool.c
* app/scale_tool.c: pass the image's unit *and* gdisp->dot_for_dot
to all functions which create sizeentries. Never create a
sizeentry with UNIT_PIXEL but with the image's unit and set it's
unit to UNIT_PIXEL after creation if dot_for_dot is on.
This way the image's unit can always be picked from the menu
without selecting "More...".
* app/interface.c: made the query_*_box() functions use the
ActionArea.
* plug-ins/gimpunitmenu.c: GTK_WIN_POS_MOUSE for the unit
selection dialog.
* app/edit_selection.c: removed some nonfunctional code.
* app/paint_core.c: remove the alt toggles perfectmouse behaviour.
* app/paintbrush.c: when ctl (or alt) is held set the fg (or bg) color.
* app/gimpparasite.[ch]: made char *name parameters const.
* app/parasitelist.c: removed unused static variable.
* app/gimpdrawable.c, app/gimpimage.c, app/undo.[ch]: added
support for undoing parasite changes.
* libgimp/gimp.h, libgimp/gimpimage.c: added
gimp_undo_push_group_start and gimp_undo_push_group_end
* libgimp/parasite.[ch]: added undoable flag.
* plug-ins/gdyntext/font_selection.c: fixed c++ style comment.
* plug-ins/gdyntext/gdyntext.c: use the new undoable parasites.
* plug-ins/rcm/rcm_misc.c: arctg can't be inline because it is
used in other .c files
* plug-ins/waterselect/waterselect.c,
* plug-ins/rotators/rotators.c, app/tips_dialog.c, app/plug_in.c:
fixed some warnings
* app/Makefile.am: build color_cmds, lut_funcs, and pixel_processor
* app/app_procs.c: feedback in the splash screen when loading
parasites.
* app/boundary.c: Optimized find_empty_segs.
* app/brightness_contrast.[ch]
* app/levels.[ch]
* app/posterize.[ch]:
moved pdb and lut calculation code. These files now contain only
GUI functions.
* app/channel.c: Optimized channel_bounds (fewer compares, better
use of registers). Use color_region instead of channel_*_segment
in channel_combine_rect. Optimized channel_combine_ellipse by
skipping pixels inside of the ellipse. Use
pixel_region_process_parallel in channel_combine_mask. Use a
GimpLut in channel_invert, and channel_sharpen.
* app/invert.c
* app/equalize.c: moved the lut functions to lut_funcs.c
* app/gimpdrawable.c, app/gimpdrawableP.h
* app/gimpimage.c, app/gimpimageP.h: removed unused gimpmatrix
variables/includes.
* app/gimplut.[ch]: added new function gimp_lut_process_inline
that operates on a single PixelRegion.
* app/gimpparasite.[ch]: new functions to save/load parasiterc
* app/parasitelist.[ch]: new functions to save/load ParasiteLists
in/from files.
* libgimp/parasite.[ch]: new functions to load/save parasites.
* app/internal_procs.c: get some procs from new location in
color_cmds.h.
* app/pixel_region.[ch]: moved pixel_regions_process_parallel
related functions to a new file.
* app/color_cmds.[ch]: new files for PDB
definitions/implementations of color correction functions.
* app/lut_funcs.[ch]: new files to hold lut creation functions.
* app/pixel_processor.[ch]: new files that contain the
pixel_regions_process_parallel routines. Added some new
capabilities that are currently unused.
Fri Mar 5 21:45:39 GMT 1999 Andy Thomas <alt@picnic.demon.co.uk>
This is a bit of a biggy. Added paths to layers & channels
dialog. This is not complete yet (it still has some rough edges ;-)
New:-
* paths_dialog.c
* paths_dialog.h
* pathsP.h
These are the core parts of the paths dialog & interaction.
* tools/penadd.xpm
* tools/pendel.xpm
* tools/pennorm.xpm
* tools/penedit.xpm
* tools/penstroke.xpm
New images found in the dialog. Maybe someone with a better
artistic flair could replace these?
Changed:-
* Makefile.am
Added new files for build
* layers_dialog.c
Added new tab for paths.
* bezier_select.h
* bezier_selectP.h
* bezier_select.c
Rearrangement & fixes. Not finished yet.
* iscissors.c
Header file changes. (Need to include more headers).
* gdisplay.c
* gdisplay.h
Hmmm... Added a function that did a mapping from gimage to gdisp.
This is a little bit of a "hack", but it was needed.. really.
* ops_buttons.h
* ops_buttons.c
Enhanced to create more types of button ops. Used in the paths dialog.
* channels_dialog.c
Header file changes?
* xcf.c
Paths stored in new PROP. Yosh.. I did as you and Adam suggested.
* gimpimage.c
* gimpimage.h
* gimpimageP.h
Added paths items to the image structures.
* app/Makefile.am: added gimphistogram*, histogramwidget*,
removed histogram.[ch]
* app/histogram.[ch]: removed. replaced with histogramwidget.[ch].
* app/{gimphistogramP.h, gimphistogram.h, gimphistogram.c}: new
functions that calculate histograms in parallel and perform
calculations on them.
* app/histogramwidget.[ch]: Same as old histogram.[ch], only it is
now a real widget, and it uses GimpHistograms instead of arrays of
values.
* app/curves.c: #include gimphistogram.h instead of histogram.h.
* app/equalize.c: use GimpHistogram and GimpLut.
* app/gimpbrush.c, app/gimpimage.c, app/gimpset.c: use
GTK_RUN_FIRST in calls to gimp_signal_new.
* app/histogram_tool.c, app/levels.c, app/threshold.c: modified to
use the new HistogramWidget.
* app/paint_funcs.c: removed some unused variables.
* app/preferences_dialog.c: only display the num-processor field
if we are configured --with-mp
* plug-ins/gee/gee.c: removed a couple of c++ style comments.
Sat Feb 20 16:12:33 CST 1999 Shawn T. Amundson <amundson@gimp.org>
* app/tips_dialog.c: Add default to Cancel button, remove
unset GTK_RECEIVES_DEFAULT from prev/next buttons (they
are like toolbar buttons), changed abreviated prev to
previous, prev/next button are now same size, cancel button
is in a button box. Added vboxes where necessary to prevent
prev/next and check button from filling vertically.
* app/app_procs.c: when splashscreen dialog is larger than the
logo, (due to huge font), center logo.
* app/file_new_dialog.c: patch from Marco Lamb <lm@geocities.com>
disallows resizing, changes vertical expanding of widgets to
not occur
* app/palette.c: patch from Marco Lamb <lm@geocities.com>. Makes
+/- buttons for zoom pixmaps (eventually, these can be replaced
with a magnifying glass with a little +/- I think), so that they
no longer expand as they did before. I modified his patch so it
did not create a misused toolbar. I did some other stuff here too,
moved Close button to the left, made it the window's default,
and unset GTK_RECEIVES_DEFAULT off of the non-bottom buttons.
* app/actionarea.c: another patch from Marco Lamb <lm@geocities.com>.
This one changes buttons to be put in a button box which is right
justified. If we decide later that spread is better, we can
change this easy enough.
* app/tools/zoom_in.xpm, app/tools/zoom_out.xpm: + and - graphics.
* libgimp/gimpunit.h
libgimp/gimpunit.c: New files from Michael Natterer
<mitschel@cs.tu-berlin.de>, gimp_unit_* routines.
* app/gimage.h
app/gimpimage.h
app/gimpimage.c
app/gimpimageP.h
app/xcf.c: Patches from Michael Natterer <mitschel@cs.tu-berlin.de>,
which keep a unit assocated with an image.
* app/gimplut.[ch]: new source files that implement pixel Look Up
Table functions.
* app/Makefile.am: build gimplut.[ch]
* app/brightness_contrast.c
* app/curves.c
* app/invert.c
* app/levels.c
* app/posterize.c: Use the new lut functions. Use
pixel_region_process_parallel in the PDB versions of these routines.
* libgimp/parasite.h
* libgimp/parasite.c: new functions parasite_name and
parasite_compare.
* app/gimpdrawable.c:
* app/gimpdrawable.h: new function
gimp_drawable_get_color_at(...) returns the RGBA[color index]
value at a specified position in the drawable. Don't set the dirty
bit on the image if a new parasite is the same as the old.
* app/gimpimage.c
* app/gimpimage.h new function
gimp_image_get_color_at(...) returns the RGBA[color index]
value at a specified position in the drawable. Don't set the dirty
bit on the image if a new parasite is the same as the old.
* app/by_color_select.c
* app/color_picker.c: use the new gimp_*_get_color_at
functions instead of messing with the tiles.
* app/layer.c: fixed a minor warning.
* app/commands.c:
don't scale the image if the new size == the old size
* app/channel.c: optimized channel_bounds by only checking the
pixels in a tile if it is not already entirely within the
currently computed bounds.
Sun Feb 14 20:43:55 GMT 1999 Austin Donnelly <austin@gimp.org>
* app/channels_dialog.c: don't #include resize.h - it's not needed
* app/preferences_dialog.c: ditto.
* app/resize.c: do all dialog creation here to factor out lots of
common code in commands.c and layers_dialog.c. Also cancel
resize/scale dialog on destruction/removal of images/layers -
proper fix for Peter Teichman's bug.
* app/resize.h: new prototype for resize_widget_new() - beginnings
of resolution-aware scaling.
* app/commands.c: pull all the resize/scale dialog creation stuff
out to resize.c
* app/layers_dialog.c: same again.
* app/layer.c: add REMOVED signal, sent when a layer is removed
from an image. Layers typically aren't destroyed until their
undo info expires.
* app/layer.h: prototype for layer_removed() call.
* app/gimpimage.c: send out removed signal.
Sun Feb 7 15:04:23 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/fileops.c: More robust and kickin' thumbnail support.
* app/edit_selection.c app/layer.c app/layer.h: Working
on lazy opaque layer moves. Disabled for now.
* app/gdisplay.c
* app/gimage.h
* app/gimpimage.c
* app/gimpimage.h
* app/image_render.c
* app/tile_manager.c: Errr, I don't remember. No, seriously.
Nothing of consequence.
Thu Jan 21 00:10:33 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/gimpimage.c: Backed out last change for now, since I'm a
coward and yosh was threatening to make a release...!
Wed Jan 20 22:37:13 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/gimpimage.c: Enabled the gimage->projection copy-on-write
hack for RGBA/GRAYA single-layer images. Masks/channels
probably don't show yet when this is active. Report strangeness.
Thanks.
Mon Jan 18 22:55:19 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/gimpimage.c app/gimpimage.h:
Part one of an effort to allow a one-layer gimage
to share tiles with its own projection courtesy of
copy-on-write, where sane. This can save megabytes
when working with such images.
The code is 'mostly working' rather than 'perfect',
so it's disabled until I have time to finish it.
Sun Jan 17 20:36:45 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/gimage_cmds.c app/gimpimage.c app/layers_dialog.c
Guides are now duplicated upon image duplication.
Guides are now scaled upon image scaling.
Lowering, raising, and renaming a layer now correctly
mark the image as dirty.
Sun Jan 17 16:56:25 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/blend.c app/bucket_fill.c app/convert.c app/crop.c
app/cursorutil.c app/cursorutil.h app/dialog_handler.c
app/dialog_handler.h app/fuzzy_select.c app/gdisplay.c
app/gimage_cmds.c app/gimpimage.c app/scroll.c
app/transform_core.c app/xcf.c
Hourglasses also apply to all registered dialogs. Hourglasses
added in a couple more important places. New hack lets
hourglasses be added and automagically removed again when
gimp/gtk re-enters the idle loop.
* app/colormaps.c
* app/devices.h
* app/tips_dialog.h: minor cleanups
* app/gimpimage.c: the dirty/clean handling seemed weird, and wasn't
correct in all cases. Just do a straight increment/decrement to
try to fix it.
-Yosh
Sun Jan 10 23:31:45 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/blend.c app/bucket_fill.c app/convert.c app/crop.c
app/cursorutil.c app/cursorutil.h app/fuzzy_select.c
app/gdisplay.c app/gdisplay.h app/gimage_cmds.c
app/gimpimage.c app/transform_core.c app/xcf.c:
Most lengthy UI-blocking operations now put up an
hourglass so the user can see that GIMP is working.
Let me know if there are other vital cases.
Redid the indexed palette dialog to not crash, to be a bit more
usable, and to be a cleaner module. A first shot at using gcg in
actual practice.. If something is screwed, let me know!
Fri Dec 18 23:46:11 GMT 1998 Andy Thomas <alt@picnic.demon.co.uk>
Changed the palette dialog. New functionality. Better previews.
Can display larger palettes. Can import palettes from images and from
gradients. Fixed colour selection so that the hightlighted
square says in sync on redraws.
* app/convert.h
* app/palette.h
* app/palette.c
* app/gradient.c
* app/gradient_select.c
* app/gimage.c
* app/gimpimage.c
* app/gimpimage.h
New file:-
* app/palette_entries.h
* libgimp/gserialize.c
* libgimp/gserialize.h: Changed the enum values to allow for
simpler future expansion.
* libgimp/parasite.c
* libgimp/parasite.h: s/persistant/persistent/.
new accessor functions for parasites. #defines for new flags.
* app/paintbrush.c: added timeing code for brush strokes.
It is #ifed out, and is only valid for shift clicks.
* app/parasite_cmds.h: fixed a warning
* app/parasitelist.h
* app/parasitelist.c: added _for_each and _length functions
* app/gimpdrawable.c: set the dirty flag when adding or removing a
persistent parasite
* app/gimpimage.c: set the dirty flag when adding or removing a
persistent parasite. Fixed bug and removed debug statements in
merge_down.
* app/xcf.c: save and load resolution, parasites, and tattoos.
* app/main.c: updated the deserialize test.
* plug-ins/tiff/tiff.c
* plug-ins/gif/gif.c: use PARASITE_PERSISTENT define instead of 1
* plug-ins/bmp/bmp.c
* plug-ins/bmp/bmp.h: declare some struct variable as extern.
* app/paint_funcs.c: Lots of optimizations aimed at speeding up
painting. Should see a 2-4X speed up on most painting
(depending on paint modes, brush size etc.)
* app/drawable.c: check for NULL drawable in drawable_ID.
this stops us from being crashed by ill-behaved plug-ins
First set of changes to integrate GAP (Gimp Animation Plugin written
by Michael Hofer)
New functions: gimp_layer_[get|set]_linked
gimp_image_raise_layer_to_top
gimp_image_lower_layer_to_bottom
--Sven
Sat Nov 14 23:16:55 GMT 1998 Austin Donnelly <austin@greenend.org.uk>
* app/gimpimage.h
* app/gimpimageP.h
* app/gimpimage.c
* app/gimage_cmds.c
* app/file_new_dialog.c
* app/info_window.c
* libgimp/gimp.h
* libgimp/gimpimage.c
* plug-ins/newsprint/newsprint.c
* plug-ins/tiff/tiff.c: gimp_image_{get,set}_resolution() calls
now get and set both X and Y resolutions. Gimp image struct now
has two resolution fields, one for each direction. I've updated
the two plugins which used the info (TIFF and newsprint).
Sat Oct 3 21:01:34 BST 1998 Adam D. Moss <adam@gimp.org>
* app/channel.c app/channel_ops.c app/disp_callbacks.c
app/floating_sel.c app/gdisplay.c app/gdisplay.h
app/gdisplay_ops.c app/gimpimage.c app/image_map.c
app/interface.c app/layers_dialog.c app/plug_in.c app/undo.c
app/xcf.c:
Resizing image canvases should be less horrible to look at.
I've removed the implicit clear of the whole area when a
window is resized by the user, and clear the exposed area around
the image manually when appropriate.
Dialogs which want synchronous updates for previews and
such use displays_update_now().
Removed some old debugging nonsense which I don't want any more.
Thu Oct 1 12:44:19 BST 1998 Adam D. Moss <adam@gimp.org>
* app/floating_sel.c app/gdisplay.c app/gdisplay.h
app/gimpimage.c app/layers_dialog.c app/undo.c:
Temporarily disabled IdleRender code whilst working
on a more centralised approach.
Sat Sep 26 20:46:18 BST 1998 Adam D. Moss <adam@gimp.org>
* app/channel.c app/channel_ops.c app/drawable.c
app/floating_sel.c app/gdisplay.c app/gdisplay.h
app/gimpimage.c app/layers_dialog.c app/undo.c:
Moved the idlerender stuff into gdisplay.c. Implemented
idlerender when doing floating_sel->layer, and undoing/redoing
layer deletion.
idlerender would be useful in many other places for improving
interactivity, if it weren't for the following problems:
* By definition, idlerender doesn't wait for a
gdisplays_update() call before starting work - it just
runs in idle time, which due to CPU contention with
plugins may not be genuinely available idle time when
things are 'noninteractive'.
* Most GIMP functions don't know whether they're
being run interactively or not. idlerender only
makes sense for interactive work. This is why
it is currently only applied to those functions which
would normally only be activated manually.
* Mixing idlerender and drawable_update() /
gdisplays_update_area() calls can lead to a region
being rerendered twice.
Hence, some slogwork is needed before idlerender can be
applied in the more general case.
Mon Aug 31 23:32:40 CDT 1998 Larry Ewing <lewing@gimp.org>
* app/gimpimage.c (gimp_image_remove_layer_mask): add back a call to
gdisplays_flush that seems to have been lost in the
objectification.
* app/gimage_cmds.c app/gimage_cmds.h app/gimpimage.c
app/gimpimage.h libgimp/gimp.h libgimp/gimpenums.h
libgimp/gimpimage.c: Moved the guide PDB functions into
a more sensible place, made them accessible to plugins
through libgimp.
Mon Aug 31 16:33:11 CDT 1998 Larry Ewing <lewing@gimp.org>
* app/gimpimage.[ch]
* app/gimage_cmds.[ch]
* app/layers_dialog.c: Added merge down procedure, I'm not really
sure if this behaves the way people expect it to, so please send
me any comments on what it actually should do. It also needs a
little testing, especially the pdb call.
* app/gimpimage.c: cleaned up Seth's merge commit a little. Also
changed the mode of a merged layer to normal, as this seems to be
the proper thing. Discussion is welcome here as well.
* app/gimage.h app/gimpimage.c app/gimpimage.h
app/internal_procs.c app/layer.c app/xcf.c:
Guide creation/deletion/query is now available as
PDB procedures. Not yet directly exported to libgimp,
and needs to be moved into gimage_cmds.c, but it
works.
Mon Aug 24 13:41:49 CDT 1998 Larry Ewing <lewing@gimp.org>
* app/fileops.c (file_save): move the mru and docindex calls to
before the call to gimp_image_set_filename so that they are still
accessing valid memory. Fixes the filename corruption seen in
these interfaces.
* app/gimpimage.c: added a warning about the side effect that
caused the above bug.
ok, i modified *way* more files than CVS is telling me....
- add canvas_init machinery (tile_manager_validate equivalent)
- fix bugs in compositing code
- layers/channels dialog, previews
- all color handling should be fairly precision independent now
- replaced gimage_type and gimage_base_type with Tags
- remove concept of flat vs. layered gimages
ray lehtiniemi <rayl@netrover.com>
bookkeeping without being used). Made copy_region more intelligent on
when to use tile sharing; some changes made to pixel_regions to
facilitate this. Fixed a refcount problem with xcf load and probably
a few other bugs that I've forgotten about. Added a sanity check in
set_undo_tiles to help with a problem larry is reporting with airbrush
and xinput. --sg
Wed Jul 8 21:08:03 CDT 1998 Larry Ewing <lewing@gimp.org>
* app/gimpimage.c (gimp_image_raise_layer): fixed a small typo
that prevented the composite image from being updated properly
CV: ----------------------------------------------------------------------
objects. (And to automatically manage their signals, not implemented
yet)
Moved drawable_apply_image to drawable.c
Created a global context object (image_context) to handle the
collection of images that the app manages.
Started separating crud out of drawables.
Isolated the id system of images entirely within pdb. Even the
window titles and menus use pointers instead of ids. Should at
least remind people that this is a developers' version. :)
to detect if an image still exists, some things may, for now,
access freed images and break. This will be fixed once proper
destroy handlers are added.