2004-02-18 Simon Budig <simon@gimp.org>
* app/config/gimpguiconfig.[ch]
* app/config/gimprc-blurbs.h: Added new GUI option: snapping distance
* app/gui/preferences-dialog.c: add a preferences widget
* app/tools/gimpmovetool.c
* app/display/gimpdisplayshell.c: use it for snapping.
2004-02-18 Sven Neumann <sven@gimp.org>
* tile-cache.c
* tile-private.h
* tile.[ch]: removed trailing whitespace, added some newlines,
let tile_is_valid() return a gboolean instead of a gint.
* app/core/gimpimage-projection.c
* app/core/gimpimage-undo-push.c
* app/paint/gimppaintcore.c
* app/tools/gimpinktool.c: use the return value from tile_is_valid()
as a boolean.
2004-02-18 Sven Neumann <sven@gimp.org>
* tile-cache.c
* tile-private.h
* tile.[ch]: removed trailing whitespace, added some newlines,
let tile_is_valid() return a gboolean instead of a gint.
* app/core/gimpimage-projection.c
* app/core/gimpimage-undo-push.c
* app/paint/gimppaintcore.c
* app/tools/gimpinktool.c: use the return value from tile_is_valid()
as a boolean.
2004-02-18 Simon Budig <simon@gimp.org>
* app/display/gimpdisplayshell.c
* app/tools/gimpmovetool.c: Adjusted snapping distance
to 8 pixels, probably should be a preferences option.
* app/tools/gimppainttool.c: Do not center the start and end
of a straight line to the center of an image-pixel unless
the brush mode is GIMP_BRUSH_HARD. Fixes bug #134410.
2004-02-18 Sven Neumann <sven@gimp.org>
* app/base/tile.h: exchanged TILEROWHINT_UNKNOWN and
TILEROWHINT_BROKEN so that TILEROWHINT_UNKNOWN becomes 0. This
allows to use calloc() to allocate and initialize the rowhint
array.
* app/base/tile.c (tile_sanitize_rowhints): reimplemented with by
a call to g_new0().
* app/base/tile-manager.c (tile_manager_get): use g_memdup() to
duplicate the rowhints when creating a tile copy.
2004-02-18 Michael Natterer <mitch@gimp.org>
Some code review:
* app/config/gimpconfig-deserialize.c
* app/config/gimpconfig-serialize.c: removed obsolete code which
made sure serialize_property()/deserialize_property() are only
called for properties of the correct class. We do it the right way
for quite a while now and clear the inherited function pointers in
gimp_config_iface_base_init().
* app/config/gimprc.c (gimp_rc_dispose): don't forget to chain up.
* app/base/gimplut.c
* app/base/lut-funcs.c
* app/config/gimpconfig-deserialize.c
* app/config/gimpconfig-serialize.c
* app/config/gimpconfig-types.c
* app/config/gimprc.c
* app/core/gimp-modules.c
* app/core/gimpbrush.c
* app/core/gimpcontainer.c
* app/core/gimpdocumentlist.c
* app/core/gimpitem.c
* app/gui/about-dialog.c
* app/gui/color-notebook.c
* app/gui/gui.c
* app/gui/tips-dialog.c
* app/paint/gimppaintcore.c
* app/paint-funcs/paint-funcs.c
* app/widgets/gimpcolorpanel.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainermenuimpl.c
* app/widgets/gimpselectioneditor.c: removed I/O includes from
files which don't use lowlevel APIs any more. Also removes
a whole bunch of G_OS_WIN32 special casing. Removed trailing
whitespace. Misc tiny cleanups.
2004-02-17 Sven Neumann <sven@gimp.org>
* app/widgets/gimpeditor.c (gimp_editor_add_stock_box): cannot
gtk_widget_destroy() a floating widget, sink it instead.
* libgimpwidgets/gimppatheditor.c (gimp_path_editor_set_path):
plugged a small memleak.
2004-02-17 Pedro Gimeno <pggimeno@wanadoo.es>
* plug-ins/pagecurl/pagecurl.c: Corrected the pairing of
gimp_drawable_get/gimp_drawable_detach and other cleanups.
(do_curl_effect): Fixed a bug spotted by Simon Budig: uninitialized
data could be exposed when applying the effect to non-rectangular
selections.
2004-02-17 Michael Natterer <mitch@gimp.org>
* app/core/gimpviewable.c (gimp_viewable_calc_preview_size): argh,
take the resolution into account if "dot_for_dot" is FALSE, not
TRUE.
2004-02-17 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-scale.c (gimp_image_scale_check): exclude the
size of the undo stacks so that the memory size is comparable with
the value displayed in the "New Image" dialog. Fixes bug #134512.
2004-02-17 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpprotocol.[ch]: changed wm_name to app_name in
the GimpConfig struct; increased GIMP_PROTOCOL_VERSION.
* app/plug-in/plug-in-run.c (plug_in_run): pass the return value
of g_get_application_name() to the plug-ins.
* libgimp/gimp.[ch]: removed function gimp_wm_name(). Set the
plug-in's application name if an app_name is passed in the config
message.
* libgimp/gimpui.c: removed usage of gimp_wm_name(); it was wrong
to do it this way and caused all plug-ins claim to be the gimp-1.3
executable in their error messages.
* libgimp/gimp.def: removed symbol gimp_wm_name.
* configure.in: reset gimp_binary_age and gimp_interface_age.
* app/core/gimpimage.c (gimp_image_name_changed): removed unused
variable.
2004-02-17 Michael Natterer <mitch@gimp.org>
Make sure each GimpItem emits "removed" when it is removed from
the image so dialogs have a chance to close themselves:
* app/core/gimplayer.c (gimp_layer_apply_mask): emit "removed"
from the mask.
(gimp_layer_removed): new function which emits "removed" from
the layer's mask when the layer gets removed from the image.
* app/core/gimpimage.c (gimp_image_dispose): emit "removed"
from all layers, channels and vectors.
* app/gui/layers-commands.c (layers_scale_layer_query)
(layers_resize_layer_query): removed recently added connections to
"removed" because GimpViewableDialog does this automatically.
2004-02-16 Michael Natterer <mitch@gimp.org>
* libgimp/gimptile.[ch] (_gimp_tile_cache_flush_drawable): new
inernal function which removes all tiles from a given drawable
from the cache.
* libgimp/gimpdrawable.c (gimp_drawable_detach): call the new
function before freeing the tiles. Fixes bug #134562.
2004-02-16 Michael Natterer <mitch@gimp.org>
* libgimp/gimppixelrgn.c: cleaned up a bit: added missing
g_return_if_fail()s, iterate lists using for() loops, indentation.
2004-02-16 Sven Neumann <sven@gimp.org>
* libgimp/gimptile.c (gimp_tile_cache_insert): partly rewritten.
Instead of removing the list element from the hash table, freeing
it, allocating a new one and inserting it again, simply move it to
the end of the list without touching the hash table at all.
2004-02-16 Sven Neumann <sven@gimp.org>
* app/config/gimpxmlparser.c (gimp_xml_parser_parse_io_channel):
set the GIOChannel encoding to NULL here instead of doing it in
gimp_xml_parser_parse_file().
2004-02-16 Sven Neumann <sven@gimp.org>
* plug-ins/gfig/gfig.c (gfig_response): set the Undo button
insensitive, not the whole dialog (bug #134419). Also start the
dialog with the Undo button set insensitive.
2004-02-16 Sven Neumann <sven@gimp.org>
* app/tools/gimpcroptool.c (crop_info_create): use limits from
libgimpbase instead of arbitrary numbers. Don't allow a crop width
or height smaller than 1 (or GIMP_MIN_IMAGE_SIZE actually).
2004-02-16 Sven Neumann <sven@gimp.org>
* app/display/gimpcanvas.c (gimp_canvas_gc_new): fixed my last
change here; of course only the guide GCs need a stipple pattern.
2004-02-16 Sven Neumann <sven@gimp.org>
* app/config/gimpxmlparser.c (gimp_xml_parser_parse_io_channel):
unset the GIOChannel's encoding before trying to find and parse
the XML header.
2004-02-15 Michael Natterer <mitch@gimp.org>
* libgimp/gimpdrawable.c (gimp_drawable_get): warn and return NULL
instead of a meaningless struct for invalid drawable_IDs. Will
make buggy plug-ins crash earlier and more reliably.
Replaced all if(drawable) by g_return_if_fail(drawable != NULL)
* libgimp/gimptile.c (gimp_tile_ref): replaced if(tile)
by g_return_if_fail(tile != NULL)
(gimp_tile_unref): g_return_if_fail(tile->ref_count > 0)
2004-02-15 Michael Natterer <mitch@gimp.org>
* app/core/gimpdata.c (gimp_data_init): using
FOO_GET_CLASS(instance) in a GInstanceInitFunc doesn't work
because during instance init, the object's class is always set to
be the class of the currently called init function. Use the second
parameter of GInstanceInitFunc instead, which is the instance's
real class. Fixes bug #134274.
2004-02-14 Michael Natterer <mitch@gimp.org>
Fixed lots of QuickMask brokenness by letting the image adjust
its qmask_state automatically:
* app/core/gimpimage-qmask.h: #define GIMP_IMAGE_QMASK_NAME "Qmask".
Use the define in all files below.
* app/core/gimpimage.[ch]: split gimp_image_drawable_add,_remove()
into separate handlers for layers and channels. Added a
"name_changed" handler for all channels. In the channel "add",
"remove" and "name_changed" handlers, check if it was a channel
named "Qmask" that was added, removed or renamed and call
gimp_image_set_qmask_state() accordingly.
* app/core/core-enums.[ch]
* app/core/gimpimage-undo-push.[ch]
* app/core/gimpundo.c: removed all Qmask undo code because the image
does the right thing without undo interaction now.
* app/core/gimpimage-qmask.c (gimp_image_set_qmask_state): set
gimage->qmask_state early so we can return early when called
recursively. Removed calls to gimp_image_undo_push_image_qmask().
Returned "removed" callback (it was utterly broken the way it was
implemented).
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_qmask_toggled): check if the image's
qmask state needs to be changed before changing it.
* app/xcf/xcf-load.c (xcf_load_channel): removed code which
recognized the qmask. GimpImage does this automatically now.
* app/gui/qmask-commands.c: cleanup.
* app/widgets/gimpimagedock.c (gimp_image_dock_constructor):
destroy the "/Select/By Color" and "/Select/Toggle QuickMask" menu
items.
* app/widgets/image-menu.c (image_menu_update): changed accordingly.
2004-02-13 Manish Singh <yosh@gimp.org>
* plug-ins/common/psd.c (load_image): Initialize dest to NULL,
make it so the temp variable use for PANOTOOLS_FIX is only declared
when it is enabled.
2004-02-13 Manish Singh <yosh@gimp.org>
* app/base/temp-buf.c (temp_buf_get_memsize)
* core/gimpviewable.c (gimp_viewable_get_memsize): Add some casts
to gsize for ints to prevent overflows.
* app/base/tile-manager.c (tile_manager_get_memsize): Same as above,
except cast to gint64.
2004-02-13 Simon Budig <simon@gimp.org>
* app/core/gimpimage-guides.[ch]: make a similar fix as in my
last commit for snapping the guides.
* app/tools/gimpmovetool.c: use the fixed version.
2004-02-13 Simon Budig <simon@gimp.org>
* app/core/gimpimage-snap.[ch]: make the snapping width a
parameter of the snapping functions.
* app/display/gimpdisplayshell.c: make sure that the snapping
width always is 5 pixels in the view coordinates.
Fixes bug #134285
2004-02-13 Michael Natterer <mitch@gimp.org>
Fixed GimpData's default "writable" and "deletable" behaviour:
* app/core/gimpdata.c (gimp_data_init): default to writable and
deletable == TRUE (something that has no filename was never loaded
from disk and can't be undeletable or read-only).
Fixes bug #134274.
* app/core/gimpdata.[ch]: added new function
gimp_data_make_internal() which frees the filename and sets the
data's flags accordingly.
* app/core/gimp-gradients.c (gimp_gradients_add_gradient)
* app/core/gimpbrush.c (gimp_brush_get_standard)
* app/core/gimpgradient.c (gimp_gradient_get_standard)
* app/core/gimppalette.c (gimp_palette_get_standard)
* app/core/gimppattern.c (gimp_pattern_get_standard): use the
new function for internal data objects.
* app/core/gimpdata.c (gimp_data_save, gimp_data_delete_from_disk)
* app/core/gimpdatafactory.c (gimp_data_factory_save_single):
bail out with g_return_if_fail() is the data is not writable
or deletable.
* app/widgets/gimpdataeditor.c
* app/widgets/gimpdatafactoryview.c: changed accordingly.
* 2004-02-12 / v3.0.14 / Adam D. Moss
* Fix a twisted utf8-obsessive bug diagnosed by
* Piotr Krysiuk <KrysiukP@prokom.pl>
*
* 2004-01-06 / v3.0.13 / Adam D. Moss
* Disable one of the PanoTools fixes by default, since it causes
* regressions in some ordinary PSD file loading.
*
* 2004-01-06 / v3.0.12 / Adam D. Moss
* Try to avoid 0-sized drawables (including channels) in all
* circumstances under GIMP 2.
*
* 2004-01-01 / v3.0.11 / Daniel Rogers <dsrogers@phaseveloctiy.org>
* GIMP crashes on 0x0 layers, so we skip them.
2004-02-12 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-convert.c (gimp_image_convert): call
gimp_image_colormap_changed() after installing the colormap.
* app/tools/gimphistogramoptions.h: fixed typedef of
GimpHistogramOptionsClass.
2004-02-12 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphistogramview.c (gimp_histogram_view_button_press):
ignore double clicks so we don't grab the pointer away from the
curves dialog. Fixes bug #132356.
* app/tools/gimpcurvestool.c (curves_graph_events): ignore button
press and release events from all buttons except the first one.
2004-02-12 Michael Natterer <mitch@gimp.org>
Make sure that non-indexed images never have a colormap.
Fixes bug #121033.
* app/core/gimpimage-colormap.c (gimp_image_set_colormap): set
image->cmap to NULL when called with a NULL colormap.
* app/core/gimpimage-undo-push.c: made colormap undo/redo aware
of NULL colormaps.
* app/core/gimpimage-convert.c (gimp_image_convert): remove the
colormap using gimp_image_set_colormap() instead of freeing it
manually.
* app/widgets/gimpcolormapeditor.c: always check if the image
is INDEXED *and* has a colormap before accessing the colormap.
(need this new check because the fixed behaviour of colormap undo
produces undo groups which, when being popped, make the image have
no colormap while still being INDEXED in the small time frame
between the emission of "colormap_changed" and "mode_changed").
2004-02-12 Sven Neumann <sven@gimp.org>
* app/tools/gimptexttool.[ch]: derive the text tool from GimpTool
directly. Doesn't look like we are going to use draw_tool
functionality for 2.0.
2004-02-11 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-dnd.c
(gimp_display_shell_bucket_fill): when dropping a color on a text
layer, change the text color. This is a quick hack; we should make
filling a drawable a virtual method that can be overridden by the
text layer.
2004-02-11 Sven Neumann <sven@gimp.org>
* app/plug-in/plug-ins.c (plug_ins_init)
* app/plug-in/plug-in.c (plug_in_close): changed g_warning() to
g_printerr() in a few places where the problem is not an error in
GIMP but a misbehaving plug-in. Suppress some of this output in
the stable branch.