* app/image_map.[ch]: new function image_map_clear that removes
the preview without freeing the image_map.
* app/brightness_contrast.c
* app/color_balance.c
* app/curves.c
* app/hue_saturation.c
* app/levels.c
* app/posterize.c
* app/threshold.c: Add a call to image_map_clear in the
preview toggle button callback. This makes the preview toggle
button behave as expected.
* app/histogram_tool: remove an unnecessary include.
2000-05-08 Michael Natterer <mitch@gimp.org>
* app/errors.c (gimp_fatal_error): oops, forgot a debugging
g_print().
* app/gdisplay.c (gdisplay_set_menu_sensitivity): there _can_ be
an active drawable even if there is no layer. Also reordered
the rest if the checks.
2000-05-08 Michael Natterer <mitch@gimp.org>
* app/fileops.c
* app/gdisplay.c: return silently from save/save_as and grey out
the menu entries if there is no active drawable. Fixes#10239.
2000-04-30 Michael Natterer <mitch@gimp.org>
* gimprc.in
* app/gimprc.[ch]: replaced "color-cube" by "min-colors".
* app/app_procs.c: read unitrc/gimprc before displaying the splash.
* app/colormaps.c: set min_colors and install_cmap before
initializing GdkRGB.
* app/gimprc.[ch]
* app/gimpunit.c: don't call the splash's progress_update function.
* app/plug_in.c: pass min_colors instead of color_cube to plugins.
* app/preferences_dialog.c: widget for min_colors.
* libgimp/gimp.[ch]: s/color_cube/min_colors/ but left
gimp_color_cube() there for source level compatibility.
* libgimp/gimpprotocol.[ch]: changed the GPConfig message
accordinly and increased the gimp protocol version number because
the change breaks binary compatibility. Also actually pass the
use_xshm variable over the wire (was only in the GPConfig struct
before).
Was it the right thing to do to increase the version number??
* libgimp/gimpui.c (gimp_ui_init): use the same code as the app
for initializing GdkRGB. Never explicitly activate Gdk's SHM
usage (only switch it off).
* app/main.c
* libgimp/gimp.c: reverted the handling of all signals except
SIGCHLD back to plain old signal() because those signals are
fatal anyway and sigaction() as used by gimp_signal_*() made
debugging (stacktrace) impossible.
* plug-ins/AlienMap/AlienMap.c
* plug-ins/AlienMap2/AlienMap2.c
* plug-ins/FractalExplorer/Dialogs.c
* plug-ins/bmp/bmp.c
* plug-ins/borderaverage/borderaverage.c
* plug-ins/dbbrowser/dbbrowser.c
* plug-ins/faxg3/faxg3.c
* plug-ins/fits/fits.c
* plug-ins/flame/flame.c
* plug-ins/fp/fp.c
* plug-ins/fp/fp_gtk.c
* plug-ins/gdyntext/Makefile.am
* plug-ins/gdyntext/gdyntext_ui.c
* plug-ins/gfig/gfig.c
* plug-ins/gflare/gflare.c
* plug-ins/gfli/gfli.c
* plug-ins/gimpressionist/gimpressionist.c
* plug-ins/helpbrowser/helpbrowser.c
* plug-ins/ifscompose/ifscompose.c
* plug-ins/imagemap/Makefile.am
* plug-ins/imagemap/imap_main.c
* plug-ins/maze/maze_face.c
* plug-ins/mosaic/mosaic.c
* plug-ins/pagecurl/pagecurl.c
* plug-ins/print/print.c
* plug-ins/rcm/rcm_dialog.c
* plug-ins/script-fu/script-fu-console.c
* plug-ins/script-fu/script-fu-scripts.c
* plug-ins/script-fu/script-fu-server.c
* plug-ins/sel2path/Makefile.am
* plug-ins/sel2path/sel2path.c
* plug-ins/sgi/sgi.c
* plug-ins/sinus/sinus.c
* plug-ins/struc/struc.c
* plug-ins/webbrowser/webbrowser.c
* plug-ins/winsnap/winsnap.c
* plug-ins/xjt/xjt.c: use gimp_ui_init().
* plug-ins/Lighting/lighting_ui.c
* plug-ins/MapObject/mapobject_ui.c: only switch Gdk SHM usage off,
never on. Don't use gimp_ui_init() here because of libgck.
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-26 Michael Natterer <mitch@gimp.org>
* app/gdisplay.[ch]
* app/gdisplay_ops.c: made the warning_dialog a per-display
variable. The old behaviour of having only one global variable
can easily result in loss of work and should IMHO be considered
a bug.
2000-04-23 Tor Lillqvist <tml@iki.fi>
* libgimp/gimpui.def: Add gimp_ui_init.
* libgimp/makefile.{cygwin,msc} (gimpui_OBJECTS): Add gimpui.
* app/makefile.{cygwin,msc}
* plug-ins/makefile.{cygwin,msc}: New installation directory.
* app/datafiles.c (is_script): Must not g_free() value returned by
g_getenv().
* plug-ins/gdyntext/font_selection.c: Don't include gdkx.h with
GTk+ 1.3.
2000-04-20 Michael Natterer <mitch@gimp.org>
* app/fuzzy_select.c
* app/selection_options.h
* app/tool_options.c: moved the "Threshold" scale from the fuzzy
select options to the selection options structure, so none of the
selection tools needs it's own tools options structure.
* app/bucket_fill.c: moved "Threshold" after "Sample Merged" as in
the fuzzy select options.
2000-04-03 Michael Natterer <mitch@gimp.org>
* app/color_panel.[ch]
* app/color_picker.c
* app/qmask.c: removed the public function color_panel_free() and
fake a real widget's behaviour by connecting to the panel widget's
"destroy" signal.
* app/channels_dialog.c
* app/layers_dialog.c: cleaned up and sync'ed the code where
possible (without changing the logic).
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.
2000-03-26 Michael Natterer <mitch@gimp.org>
* app/gimage_mask.[ch] (gimage_mask_extract): add an "add_alpha"
parameter to allow selected regions to be extracted without having
an alpha channel added.
* app/global_edit.c: pass add_alpha = TRUE.
* app/transform_core.[ch]: made the transform core work on
non-layer drawables even if no selection is present. Fixes#7485
and #7555.
- transform_core_cut(): extract the mask without alpha if
operating on a non-layer without having a selection.
- transform_core_paste(): return a boolean indicating success
instead of a layer and handle channels correctly.
- transform_core_do(): if the "floating_tiles" passed to the
function are from an un-floated non-layer, treat the whole
non-layer as alpha channel and never enter the loop which
transforms the (not present) color channels.
Also clip the result to ensure that the channel never grows
larger then the image.
* app/tools_cmds.c
* tools/pdbgen/pdb/tools.pdb: transform_core_paste() returns a
gboolean now.
* app/fileops.c
* app/gdisplay.[ch]: when reverting an image, reconnect all
affected views to the reverted version. This fixes one of the
bugs Tigert pointed out at GUADEC.
* app/gimage_mask.[ch]
* app/flip_tool.c: cleanups
--Sven & Mitch
* 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-03-04 Michael Natterer <mitch@gimp.org>
* Makefile.am
* cursors/selection_move.xbm
* cursors/selection_move_mask.xbm
* app/cursorutil.[ch]: new cursor for moving the selection
mask. Looks imho nicer than the ugly GDK_DIAMOND_CROSS.
* app/move.c
* app/rect_select.c: use the new cursor.
* app/paint_core.c: check for the statusbar's context_id in the
cursor_update function. Fixes gdk_criticals with the line preview
(which doesn't need a mouse click). Minor cleanups.
* app/tool_options.c: put the paint_pressure options in a
GtkHWrapBox instead of a GtkHBox. Makes the size of the dialog a
bit less locale-dependent.
* plug-ins/common/xbm.c: use accessor functions instead of using
the parasite's fields directly.
2000-03-03 Michael Natterer <mitch@gimp.org>
* app/crop.c: s/"Only"/"only"/
* app/iscissors.c: one more cursor_update fix. This time I don't
claim that it's _really_ correct.
* app/tool_options.c: don't add a separator after
opacity/paint_mode if a paint pressure options box follows.
* cursors/bad.xbm
* cursors/bad_mask.xbm: made it FAT (no need to use thin lines
which show as much as possible of the image below because the
cursor indicates that no operation is possible).
* libgimp/gimpprotocol.[ch]: s/int/gboolean/ where appopriate,
indentation paranoia.
_gp_*_read(): free the already allocated parts of the message if
reading a subsequent part fails. These cleanups will probably occur
shortly before the process crashes, but at least they make the
search for real leaks easier.
* plug-ins/common/uniteditor.c: some more tooltips.
* plug-ins/common/xbm.c: store the image comment in the
"gimp-comment" parasite and the hot spot in the new "hot-spot"
parasite. Added ui for entering the hot spot.
* docs/parasites.txt: documented the new "hot-spot" parasite.
2000-03-01 Michael Natterer <mitch@gimp.org>
* app/gimpdrawable.c: gimp_drawable_get_color_at(): put the check
below back but only require a non-indexed drawable if the drawable
doesn't have an image.
(The function may call gimp_image_get_color() with gimage == NULL
for RGB and GRAY colors because we don't need a colormap to
transform them to RGB space).
This was the obscure special case (TM).
2000-03-01 Michael Natterer <mitch@gimp.org>
* app/gimpdrawable.c: gimp_drawable_get_color_at(): don't
g_return_val_if_fail(!indexed, NULL) because the function seems to
work fine for all kinds of drawables. Fixes#6756. Or is this
check needed for some obscure special case?
2000-03-01 Michael Natterer <mitch@gimp.org>
* app/gdisplay.c: set <Image>/File/Revert... insensitive if the
image has no filename.
* plug-ins/common/uniteditor.c: minor fix.
2000-03-01 Michael Natterer <mitch@gimp.org>
* C/dialogs/layers/Makefile.am
* C/dialogs/layers/index.html
* C/dialogs/layers/apply_mask.html: removed.
* C/layers/Makefile.am
* C/layers/index.html
* C/layers/apply_mask.html
* C/layers/delete_mask.html: new files.
2000-02-27 Garry R. Osgood <gosgood@idt.net>
* gimp/app/by_color_select.c
* gimp/app/color_picker.c
* gimp/app/gimpdrawable.c
* gimp/app/image_map.c
* gimp/app/paint_core.c
Inadvertent logic error in g_return_val_if_fail()
style sanity checks implemented in
gimp_drawable_get_color_at() gave rise to
segment violation reported in #6624;
error admitted out-of-bounds x&y that
do not map to tiles. Closes#6624.
GTK-critical warnings which result from
this new sanity check require that
gimp_drawable_get_color_at() clients
perform initial culling of out-of-bounds
x & y coordinates.
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.
2000-02-24 Michael Natterer <mitch@gimp.org>
* app/gimpbrush.[ch]
* app/gimpbrushgenerated.[ch]
* app/gimpbrushlist.[ch]
* app/gimpbrushlistP.h
* app/gimpbrushpipe.[ch]
* app/gimpbrushpipeP.h: did a brushes code-review: indentation,
removed some includes, didn't find a bug :-)
* app/gradient.c
* app/palette.c: we were leaking all gradient and palette preview
pixmaps as well as all lists of palette colors on each refresh.
* libgimp/gimpenv.c: updated documentation.
2000-02-24 Michael Natterer <mitch@gimp.org>
* app/datafiles.c: fixed a memleak.
* app/gimpbrushlist.c
* app/gradient.c
* app/palette.c: use the gimp_path_* functions, cleanups.
* app/gimpbrushpipe.c: call the "destroy" function of the parent
class, not of the object class. Fixes a huge memleak on each
"Refresh".
* app/gimpbrushpipeP.h
* app/gimplist.c
* app/gimpbrush.c: did some cleanups while searching the brush
memleak.
* libgimp/gimpenv.c: gimp_path_get_user_writable_dir(): return a
copy of the string.
* plug-ins/FractalExplorer/Dialogs.c
* plug-ins/gfig/gfig.c
* plug-ins/gflare/gflare.c: g_free() the string returned by
gimp_path_get_user_writable_dir().
2000-02-22 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: it's more intelligent to implement the
parent_context stuff with gtk_signal_connect_object() instead of
having internal callbacks for each context attribute.
Exported the existing gimp_context_*_changed() functions and
changed them to do nothing but emitting the signal.
* app/app_procs.c
* app/tools.c
* app/transform_tool.c: use gimp_context_tool_changed() instead of
gtk_signal_emit_by_name().
2000-02-22 Michael Natterer <mitch@gimp.org>
* app/color_area.[ch]
* app/interface.c: pass masks for the "default" and "swap" pixmaps
to the color_area constructor and use them to create a clip mask
in color_area_draw().
* app/datafiles.[ch]: some harmless cleanups.
* libgimp/gimppixmap.c: use gtk_pixmap_set_build_insensitive()
instead of accessing the field directly.
2000-02-21 Michael Natterer <mitch@gimp.org>
* libgimp/gimppixmap.c: fixed a gtk-doc comment.
* libgimp/gimpenv.[ch]: new functions:
- gimp_path_parse(): Creates a GList of strings from a searchpath
string and performs sanity checks.
- gimp_path_to_str(): Creates a searchpath string from the list
returned by gimp_path_parse().
- gimp_path_free(): Frees the list returned by gimp_path_parse().
- gimp_path_get_user_writable_dir(): Returns the first dir in a
path where the user has write access. With this function the
"Save" dialogs of some plugins always show the plugin's
subdirectory of the user's gimp_dir instead of the read-only
global one.
* app/datafiles.[ch]
* app/gimpbrushlist.c: use the new functions and
s/datafile_loader_t/GimpDataFileLoaderFunc/.
* plug-ins/FractalExplorer/Dialogs.c
* plug-ins/FractalExplorer/FractalExplorer.c
* plug-ins/gfig/gfig.c
* plug-ins/gflare/gflare.c
* plug-ins/gimpressionist/gimpressionist.c: use the new functions.
2000-02-18 Michael Natterer <mitch@gimp.org>
* app/paint_options.h
* app/tool_options.h: put the pointer to tool's private context to
the PaintOptions structure instead of attaching it to the
paint_mode optionmenu (which does not exist for all paint tools
which have a private context). Fixes bug #6308.
* app/Makefile.am: forgot to exclude airbrush_blob.[ch] from the build
* app/gimpbrushgenerated.c
* app/ink.c
* app/measure.c
* app/rotate_tool.c: use gimp_rad_to_deg and gimp_deg_to_rad macros
--Sven
* tools/pdbgen/*.pl: added 2000 to the copyrights
* tools/pdbgen/lib.pl: it's foo_pdb.[ch] now
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/parasite.pdb: reenabled sanity checks for the
drawable IDs and the parasite names
* app/drawable.c
* app/gimpdrawable.c: added a bunch of g_return_if_fail's, instead
of the silent check and return in many functions. This should also
be done in gimpimage.c and the like too.
* app/gimpdrawable.h
* app/layer.c: cosmetic code fix
-Yosh
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-15 Tor Lillqvist <tml@iki.fi>
* libgimp/gimp.def
* libgimp/gimpui.def
* libgimp/makefile.{cygwin,msc}
* app/makefile.{cygwin,msc}
* plug-ins/makefile.{cygwin,msc}: Updates.
* app/datafiles.c (is_script): New Win32-only function, which
tests if a file's extension matches one of the extensions in the
PATHEXT environment variable (which the cmd.exe command
interpreter also uses). This is to avoid starting applications
associated with any random data file the user might have dropped
in the plug-ins folder, while still supporting plug-ins written in
scripting languages.
* app/gimpparasite.c (gimp_parasiterc_save): (Win32:) Cannot
rename to an existing file.
* plug-ins/Lighting/lighting_image.c
* plug-ins/Lighting/lighting_share.c
* plug-ins/MapObject/mapobject_preview.c
* plug-ins/MapObject/mapobject_shade.c: Use G_PI.
* plug-ins/common/gz.c: #ifdef G_OS_WIN32 was used before its
potential definition via glib.h.
* plug-ins/common/jpeg.c: Also recognize Exif files, which are
typically produced by digital cameras. The usually have a .jpg
file name extension, and would thus already match this plug-in,
but add the magic string just in case. They are loaded just fine
by libjpeg even if they don't have the JFIF signature.
* plug-ins/common/tiff.c: Set TIFF warning and error handler, so
we get to pass libtiff's messages through the normal channels.
2000-02-14 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/vector2d.[ch]: removed.
* app/gimpbrush.h
* app/paint_core.c: use the vectors from libgimp.
2000-02-13 Michael Natterer <mitch@gimp.org>
* po/POTFILES.in
* app/Makefile.am
* app/buildmenu.[ch]: removed.
* app/blend.c
* app/brush_select.c
* app/curves.c
* app/histogram_tool.c
* app/layers_dialog.c
* app/lc_dialog.c
* app/levels.c
* app/paint_options.h
* app/paintbrush.c
* app/tool_options.c: use the libgimp option menu
constructor. Removed paint_mode_menu_set_history().
* app/colormap_dialog.i.c
* app/colormap_dialog.p.h: use a popup menu as in the palette
dialog instead of a pulldown menu.
* app/channels_dialog.c: made color dnd to a channel widget work
again.
* libgimp/gimpwidgets.[ch]: new function
gimp_option_menu_set_history() which sets the history according to
user_data as passed to gimp_option_menu_new().
2000-02-13 Michael Natterer <mitch@gimp.org>
* app/brush_select.c
* app/paint_options.h
* app/tool_options.c: use new function
paint_mode_menu_set_paint_mode() instead of
gtk_option_menu_set_history() because the order of paint modes in
the menu is different from the one in the LayerModeEffects enum
(fixes bug #6190). Create the menu with the libgimp menu
constructor.