2003-05-07 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.c (gimp_layer_create_mask): when adding a
layer mask from selection, don't crash if the layer is not
entirely inside the image boundary but clip the copy_region()
accordingly. Fixes bug #112409. Added a local GimpDrawable variable
so we don't need to GIMP_DRAWABLE(layer) all the time.
2003-05-07 Michael Natterer <mitch@gimp.org>
Started to abstract item transformation so we can easily
transform multiple linked items later:
* app/core/gimpitem.[ch]: added new virtual function
GimpItem::scale() with the same signature as the former
gimp_layer_scale_lowlevel().
* app/core/gimpdrawable.c: implement scale() and do the
common parts of layer/channel scaling here.
* app/core/gimpchannel.[ch]
* app/core/gimplayer.[ch]: implement scale() for the
channel/layer specific parts of scaling.
* app/core/gimplayer.[ch]: renamed gimp_layer_scale() to
gimp_layer_scale_by_origin().
* app/vectors/gimpvectors.c: added empty scale() implementation.
* app/core/gimpimage-scale.c
* app/core/gimpimage-undo-push.c
* app/gui/layers-commands.c
* tools/pdbgen/pdb/layer.pdb: changed accordingly.
* app/pdb/layer_cmds.c: regenerated.
Unrelated:
* app/core/gimpimage-undo-push.c: fixed item rename undo to
take the size of the saved name into account. Removed old
path_undo stuff.
2003-05-05 Pedro Gimeno <pggimeno@wanadoo.es>
* app/core/gimpdrawable-blend.c: Cleanups.
(gradient_calc_linear_factor): Apply the gradient to both sides
when Repeat is set to Sawtooth Wave. Fixes bug #112106.
* app/core/gimpdrawable-transform.c
(gimp_drawable_transform_tiles_affine): Fix copy'n'paste slip in
coordinates calculation for supersampling code. Transform the
pixel centers properly. Fixes bug #10466.
* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_rectangle,
gimp_draw_tool_draw_arc): Ported the fix for bug #17904 from the
STABLE branch (off-by-one when drawing the rectangle/ellipse
previews).
* app/tools/gimpeditselectiontool.c: Renamed
gimp_edit_selection_tool_snap to
gimp_edit_selection_tool_calc_coords, as it is no longer used for
snapping.
(gimp_edit_selection_tool_calc_coords): Use floor instead of
rounding. Callers changed to remove rounding, as it deals with
gdoubles directly. Thanks to Mitch for the help refining this
one. Fixes bug #17906.
2003-05-05 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-scale.[ch]
(gimp_display_shell_scale_zoom_fraction): new utility function
which takes GimpZoomType and zooms "scalesrc" and "scaledest".
(gimp_display_shell_scale_calc_fraction): new utility function
which takes an exact double scale factor and calculates "scalesrc"
and "scaledest".
(gimp_display_shell_scale): use the first.
(gimp_display_shell_scale_fit): use the second.
* app/tools/gimpmagnifytool.[ch]: use the first to click-zoom and
the second to area-zoom. Fixes bug #112115. Removed zoom_in() and
zoom_out() utiliy functions. Removed "GimpZoomType op" from the
GimpMagnifyTool struct. Cleanup.
2003-05-05 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_snap_coords):
don't change the passed GimpCoords if we didn't snap.
2003-05-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.c: set GDK_HINT_USER_POS for all
session managed dialogs, not only for those which already have
saved session info. This way the dialogs keep their position
acrosss hide/show within the same session, even if they have never
been used before.
* app/gui/dialogs.c: added entries for the file open/save dialogs.
Fixed some entries.
* app/gui/file-dialog-utils.[ch]
* app/gui/file-open-dialog.c
* app/gui/file-save-dialog.c: register the file dialogs with
the dialog factory.
2003-05-03 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-ins.c (plug_ins_init): Update the splash before
calling plug_in_query() and plug_in_init() (applied a modified
patch from Raphael Quinet). Fixes bug #112156.
2003-05-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockbook.[ch]: added "dockable_added",
"dockable_removed" and "dockable_reordered" signals and emit them.
* app/widgets/gimpimagedock.[ch]: implement GimpDock::book_added()
and GimpDock::book_removed(). Connect to the above signals and
update the window title as proposed in bug #111971. Idle-update
the title so subsequent changes are compressed. Fixes bug #111971.
* app/widgets/gimpdock.c: cleanup.
2003-05-02 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: added new function
gimp_dialog_factory_add_foreign() which adds a dialog that was not
created by the factory itself. Its identifier however must be
registered with the factory. Connect to all toplevel dialogs'
"configure_event" and remember the resulting window geometry so we
get session management for *all* dialogs, not only for those which
were open on exit.
* app/gui/dialogs.c: added the "File New" dialog. Added foreign
entries (without constructor) for all dialogs opened by tools.
* app/gui/dialogs-constructors.[ch]: added a constructor for
the file_new dialog.
* app/gui/file-new-dialog.[ch]: renamed file_new_dialog_create()
to file_new_dialog_new() and removed the gimage and template
paramaters. Adder new function file_new_dialog_set() to set
gimage and template after creation.
* app/gui/file-commands.c
* app/gui/templates-commands.c: changed accordingly.
* app/tools/gimpimagemaptool.[ch]
* app/tools/gimptransformtool.[ch]: added
"const gchar *shell_identifier" to the tool structs. Register the
tool dialogs using gimp_dialog_factory_add_foreign().
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpcolorbalancetool.c
* app/tools/gimpcurvestool.c
* app/tools/gimphuesaturationtool.c
* app/tools/gimplevelstool.c
* app/tools/gimpperspectivetool.c
* app/tools/gimpposterizetool.c
* app/tools/gimprotatetool.c
* app/tools/gimpscaletool.c
* app/tools/gimpsheartool.c
* app/tools/gimpthresholdtool.c: set "shell_identifier" so the
dialogs become session managed. Fixes bug #61091.
* app/tools/gimpcroptool.c: register the crop dialog with the
dialog factory. Fixes bug #52849.
* app/tools/gimpcolorpickertool.c: ditto.
Unrelated:
* app/tools/gimptool.c: no need to cast the return value of
g_object_new().
2003-05-02 Pedro Gimeno <pggimeno@wanadoo.es>
* app/paint/gimppaintcore-stroke.c (gimp_paint_core_stroke,
gimp_paint_core_stroke_vectors): Save brush pointer before first
stroke and restore it after. Fixes bug #102162.
* plug-ins/common/flarefx.c (FlareFX): Use
gimp_fixme_preview_do_row instead of memcpy. Fixes bug #112042 for
this plug-in.
* plug-ins/common/jigsaw.c: Several cleanups.
(jigsaw_values_changed): New function as a result of the cleanups.
(jigsaw): Use gimp_fixme_preview_do_row instead of memcpy.
Together with the fix to flarefx, fixes bug #112042.
(draw_jigsaw): Warn if passed a NULL buffer (solves the crash
reported in bug #112012).
* plug-ins/gimpressionist/orientation.c: Slightly reformatted.
(create_orientationpage): Modify orientfirst/orientlast instead of
sizefirst/sizelast in the corresponding adjustments. Fixes bug
#112061.
2003-05-01 Manish Singh <yosh@gimp.org>
* app/text/gimpfontlist.c: Query fontconfig directly for the font
list, avoiding scanning the internal fontconfig list over and over
again. There are differences in the font list that the old and new
code produce however. The new code will generate descriptions for
more fonts, and some of the styles will be different. Also, pango
font description strings aren't specific enough for all cases, so
a font name may appear more than once in the list. I'm not sure
how to solve this best, but this code is Good Enough (TM) for now.
2003-04-30 Pedro Gimeno <pggimeno@wanadoo.es>
* app/widgets/gimpgradienteditor.c (control_compress_range): Don't
try to compress the left and right ends. Fixes bug #89274.
2003-04-30 Michael Natterer <mitch@gimp.org>
* app/xcf/xcf-load.c (xcf_load_image_props): skip guides with
negative positions. Fixes warning since gimp_image_add_[hv]guide()
doesn't allow positions < 0 any more.
2003-04-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_button_press): when editing an object's
name, make sure we really edit its name, not its description.
2003-04-29 Pedro Gimeno <pggimeno@wanadoo.es>
* app/paint-funcs/paint-funcs.c (shrink_line): Serialize access to
source and destination memory to reduce the chance of cache misses
when dealing with large images. Enable some assertions temporarily
to ensure that the algorithm works properly before backporting it.
2003-04-28 Michael Natterer <mitch@gimp.org>
* plug-ins/common/jpeg.c: default to not showing the in-display
JPEG preview and warn the user that enabling it will modify
the image's undo history. Fixes bug #109464.
2003-04-25 Pedro Gimeno <pggimeno@wanadoo.es>
* app/paint-funcs/paint-funcs.c: Some reformattings to improve
readability.
(shrink_line): Added some explanatory comments.
(border_region): Fixed wrong (though harmless) allocation bug: used
sizeof(gint16 *) where sizeof(gint16) was needed.
2003-04-23 Sven Neumann <sven@gimp.org>
* plug-ins/common/url.c (query): register the plug-in for https
as well. Most wget installations seem to handle this nowadays.
2003-04-17 Pedro Gimeno <usr352@wanadoo.es>
* configure.in: Removed the plug-ins/tools/Makefile line that was
left over when the tool plug-ins were removed.
2003-04-17 Sven Neumann <sven@gimp.org>
* plug-ins/script-fu/scripts/old-photo.scm: applied a modified
version of a patch from Branko Collins that makes the border size
configurable (bug #62087).
2003-04-17 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-contiguous-region.c
(find_contiguous_region_helper): applied patch from Pedro Gimeno
that fixes bug #51883.
* plug-ins/common/bumpmap.c (bumpmap): applied patch from Pedro
Gimeno that fixes bug #52543.
2003-04-17 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-guides.c (gimp_image_add_x,y): new functions
snapping to one axis only.
(gimp_image_snap_rectangle): use them to enable snapping the
rectangle to all its corners, not just the NW and SE one.
2003-04-17 Michael Natterer <mitch@gimp.org>
* app/tools/gimptoolcontrol.[ch]: added an API to specify a
"snap_offset" and a "snap_width/height". Needed for tools which
want to snap to a rectangle and/or a position which is not the
current cursor position.
* app/display/gimpdisplayshell.[ch]: removed
gimp_display_shell_find_guide(), gimp_display_shell_snap_point()
and gimp_display_shell_snap_rectangle().
Added gimp_display_shell_snap_coords() which works on GimpCoords
and gets passed the above snap offsets.
* app/display/gimpdisplayshell-callbacks.c: use the new snap
function, using the values from GimpToolControl.
* app/tools/gimpcroptool.c: set snap offsets so the handles can be
guide-aligned after creating. Fixes bug #110957.
* app/tools/gimpeditselectiontool.c: removed snapping code (which
was broken anyway) and set appropriate snap offsets in
init_edit_selection().