* app/tools/gimprectangletool.[ch]: add new signal
"rectangle-changed" and method rectangle_changed.
Emit them on button release and when dimensions are
changed in controls.
* app/tools/gimpnewrectselecttool.c: use rectangle_changed
method to change selection, undoing previous change if
necessary.
2006-06-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch]: renamed
gimp_image_coords_in_active_drawable() to
gimp_image_coords_in_active_pickable() and added boolean
"sample_merged" and "selected_only" parameters. Use floor()
instead of ROUND(), we want to round to the actual pixel, not to
the nearest pixel boundary.
* app/tools/gimpbucketfilltool.c
* app/tools/gimpclonetool.c
* app/tools/gimpcolortool.c
* app/tools/gimpfliptool.c
* app/tools/gimptransformtool.c: changed accordingly. Removed
quite some duplicated code which checked sample_merged and the
mask value at the cursor location.
* app/tools/gimpbycolorselecttool.c: use the hand tool cursor,
there's also a hand in the toolbox icon. Fixed cursor_update()
function to set the bad modifier when there is no pickable pixel
at the cursor loction.
* app/tools/gimpfuzzyselecttool.c: added cursor_update()
implementation which does the same as by_color_select's one.
* app/tools/gimpselectiontool.c
(gimp_selection_tool_cursor_update): don't override the bad
modifier which was set by a subclass' cursor_update().
2006-06-03 Michael Natterer <mitch@gimp.org>
* app/tools/gimpnewrectselecttool.c
(gimp_new_rect_select_tool_button_press): check for function ==
INACTIVE, not CREATING || EXECUTING when checking whether to start
moving.
* app/tools/gimpselectiontool.c (gimp_selection_tool_oper_update):
changed modifiers so alt+ctrl does cut+float+move and alt+shift
does copy+float+move.
* app/tools/gimpnewrectselecttool.[ch]: use RECT_INACTIVE state,
(but doesn't seem to do anything). More importantly, change
logic so that button_release executes the tool, and button
release undo's if appropriate.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_button_press):
if function is RECT_CREATING, start a new rectangle.
* app/tools/gimpnewrectselecttool.c: remove g_printerr statement that
mitch added for debugging.
2006-06-02 Michael Natterer <mitch@gimp.org>
* cursors/Makefile.am
* cursors/cursor-corner-bottom-left.png
* cursors/cursor-corner-bottom-right.png
* cursors/cursor-corner-top-left.png
* cursors/cursor-corner-top-right.png
* cursors/cursor-side-bottom.png
* cursors/cursor-side-left.png
* cursors/cursor-side-right.png
* cursors/cursor-side-top.png
* cursors/xbm/cursor-corner-bottom-left-mask.xbm
* cursors/xbm/cursor-corner-bottom-left.xbm
* cursors/xbm/cursor-corner-bottom-right-mask.xbm
* cursors/xbm/cursor-corner-bottom-right.xbm
* cursors/xbm/cursor-corner-top-left-mask.xbm
* cursors/xbm/cursor-corner-top-left.xbm
* cursors/xbm/cursor-corner-top-right-mask.xbm
* cursors/xbm/cursor-corner-top-right.xbm
* cursors/xbm/cursor-side-bottom-mask.xbm
* cursors/xbm/cursor-side-bottom.xbm
* cursors/xbm/cursor-side-left-mask.xbm
* cursors/xbm/cursor-side-left.xbm
* cursors/xbm/cursor-side-right-mask.xbm
* cursors/xbm/cursor-side-right.xbm
* cursors/xbm/cursor-side-top-mask.xbm
* cursors/xbm/cursor-side-top.xbm: new cursors for edge and corner
resizing. They perfectly align with the small crosshair and can be
used together with tool cursors and cursor modifiers.
* cursors/gimp-tool-cursors.xcf: add them here too.
* app/widgets/widgets-enums.h: add them to the GimpCursorType enum.
* app/widgets/gimpcursor.c: add them here too.
* app/display/gimpdisplayshell-cursor.c: treat them like the small
crosshair (don't replace them by the small crosshair but use them
as-is). Also allow the bad modifier with the large crosshair.
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_cursor_update): use the new cursors. Don't
call gimp_tool_set_cursor() here.
(gimp_rectangle_tool_response): reset "function" to RECT_CREATING
when resetting the tool.
* app/tools/gimpselectiontool.[ch] (struct GimpSelectionTool):
added boolean member "allow_move" which defalts to TRUE.
(gimp_selection_tool_oper_update): don't move masks, floating
selections or anything when "allow_move" is FALSE. Changed
behavior of click inside a selection to simply create a new
selection, need to press alt+shift now to drag-float the
selection. Please test this, it's apretty fundamental change!
(gimp_selection_tool_cursor_update): use the tool's configured
cursor instead of always GIMP_CURSOR_MOUSE, so this function can
be called after gimp_rectangle_tool_cursor_update() to add the
plus, minus etc. modifiers.
* app/tools/gimpnewrectselecttool.c: implement
GimpTool::cursor_update() and call
gimp_rectangle_tool_cursor_update() from there. Chain up to get
the plus, minus etc. modifiers added.
Re-enble selection moving:
(gimp_new_rect_select_tool_oper_update): set GimpSelectionTool's
"allow_move" to FALSE unless the rectangle tool is in an idle
state.
(gimp_new_rect_select_tool_button_press): allow a selection moving
to be started if the rectangle tool is idle. Fall back to starting
a rect select if gimp_selection_tool_start_edit() returned FALSE.
2006-06-01 Michael Natterer <mitch@gimp.org>
* cursors/Makefile.am
* cursors/modifier-bad.png
* cursors/xbm/modifier-bad-mask.xbm
* cursors/xbm/modifier-bad.xbm: new "bad" cursor
modifier. Replaces the "bad" cursor.
* cursors/gimp-tool-cursors.xcf: added it here too.
* app/widgets/widgets-enums.h: added GIMP_CURSOR_MODIFIER_BAD.
* app/widgets/gimpcursor.c: add the bad modifier. Leave the bad
cursor there for now.
* app/display/gimpdisplayshell-callbacks.c
* app/tools/gimpaligntool.c
* app/tools/gimpblendtool.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpclonetool.c
* app/tools/gimpcolortool.c
* app/tools/gimpfliptool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimpmovetool.c
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c: use the modifier instead of the
cursor. Fixes hotspot jumping when switching between normal and
bad cursors. The changed cursor_update() functions even make more
sense IMHO. Fixes bug #158407.
* app/tools/gimprectangletool.[ch]: add "constrain" property
to specify whether to clip at image bounds when computing
dimensions.
* app/tools/gimpcroptool.c
* app/tools/gimpnewrectselecttool.c: set "constrain" to TRUE.
* app/tools/gimpellipseselecttool.c: set "constrain" to FALSE.
Hopefully fixes bug #329817.
2006-05-28 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcolorpickertool.c (gimp_color_picker_tool_picked):
removed all code except info dialog updating and chain up instead.
* app/tools/gimpcolortool.c (gimp_color_tool_real_picked): newly
added default implementation. Also updates the colormap dialog and
picks into a palette.
* app/tools/gimppainttool.c (gimp_paint_tool_color_picked):
removed. The default impl. does this and much more now. Hopefully
fixes bug #320660.
2006-05-24 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.c (gimp_context_tool_list_thaw): the
default tool is the paintbrush, not rect select.
* app/tools/gimp-tools.c (gimp_tools_register): attach the default
visibility state to the tool_info.
* app/actions/tools-commands.c (tools_reset_cmd_callback): use the
attached boolean instead of reimplementing the default visibility
logic.
2006-05-23 Karine Delvare <edhel@gimp.org>
* app/core/gimpcontext.c
* app/tools/gimp-tools.c
* app/tools/gimpnewrectselecttool.c
* app/tools/gimprectselecttool.c
* app/widgets/gimptoolbox.c
* menus/image-menu.xml.in: replace old rect select by new in the
toolbox.
2006-05-23 Michael Natterer <mitch@gimp.org>
* app/tools/gimptransformtool.c (gimp_transform_tool_dialog_update):
don't call the virtual function if there is no dialog.
(gimp_transform_tool_recalc): show the dialog here after updating it.
* app/tools/gimpperspectivetool.c
* app/tools/gimprotatetool.c
* app/tools/gimpscaletool.c
* app/tools/gimpsheartool.c (dialog_update): don't show it here.
2006-05-22 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.[ch]: re-apply heavily modified patch
from Michael Schumacher which shows the clone source even while
not painting. Fixes bug #324224. Did some additional cleanup.
2006-05-22 Sven Neumann <sven@gimp.org>
* app/actions/plug-in-commands.c (plug_in_collect_image_args):
removed debugging output.
* app/tools/gimpscaletool.c: create the GimpSizeBox in the
prepare() method to make entering relative sizes work.
2006-05-22 Sven Neumann <sven@gimp.org>
* app/tools/gimpscaletool.c (gimp_scale_tool_prepare): initialize
width, height and keep-aspect properties of the size box.
2006-05-22 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c: revert previous change. Tools must
not do anything essential in cursor_update(), and poking in the
GimpClone struct is a bad hack. Will look into this.
2006-05-21 Michael Natterer <mitch@gimp.org>
* app/tools/tool_manager.c (tool_manager_image_clean_dirty): don't
try to reset the active tool by destroying and re-creating it
because this doesn't work while gimp->busy is TRUE. Call
tool_manager_control_active(HALT) instead, which is the right way
to do it anyway. Fixes bug #330083.
Sprinkled some local variables all over the place to get rid of a
gazillion tool_manager->active_tool.
2006-05-21 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/gimpimage-item-list.[ch]: new files with functions to
translate, flip, rotate, transform and align a list of items
inside an undo group.
(gimp_image_item_list_get_list): returns a list of items matching
any combination of GimpItemTypeMask and GimpItemSet.
* app/core/gimpitem.[ch]: added new function gimp_item_is_in_set().
* app/core/gimpitem-linked.[ch]: use the new functions. Removed
gimp_item_linked_get_list().
* app/tools/gimpeditselectiontool.c: use
gimp_image_item_list_get_list() instead of
gimp_item_linked_get_list().
* app/core/gimpimage-resize.c
* app/tools/gimpaligntool.c: use the new functions instead of
creating and iterating the lists manually.
2006-05-19 Sven Neumann <sven@gimp.org>
* app/tools/gimpscaletool.c (gimp_scale_tool_dialog_update,
gimp_scale_tool_size_notify): use the same rounding to determine
width and height from the TransInfo struct.
2006-05-19 Sven Neumann <sven@gimp.org>
* app/tools/gimptransformoptions.[ch]: removed one of the two
constrain properties.
* app/tools/gimprotatetool.c
* app/tools/gimptransformtool.c: changed accordingly.
* app/tools/gimpscaletool.c: sync "constrain" with the size-box's
"keep-aspect" property.
2006-05-18 Michael Natterer <mitch@gimp.org>
* app/tools/gimphuesaturationtool.c: add tooltips to all hue
partition radio buttons.
* app/tools/gimptextoptions.[ch]
* app/tools/gimpvectoroptions.[ch]: add the widgets that are
needed by the tools as members to the options structs instead of
attaching them with g_object_set_data().
* app/tools/gimptexttool.c
* app/tools/gimpvectortool.c: access the struct members instead of
using g_object_get_data().
* themes/Default/images/tools/stock-tool-align-16.png
* themes/Default/images/tools/stock-tool-align-22.png
* libgimpwidgets/gimpstock.c
* libgimpwidgets/gimpstock.h
* themes/Default/images/Makefile.am: add new (ugly) icon
for alignment tool.
* app/tools/gimpaligntool.c: use the new icon; change
"pressed" to "clicked" for buttons.
2006-05-17 Michael Natterer <mitch@gimp.org>
* app/tools/gimpvectortool.c (gimp_vector_tool_set_vectors): use
the same method as the newly added text tool code for finding a
suitable display for the vectors.
* app/tools/gimpaligntool.[ch]: major change in ui, to make
this tool behave like alignment tools found in vector apps.
now you select items by clicking or drawing a rubber-band
rectangle, add items by holding down shift, and then press
a button to align all the selected items.
2006-05-14 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c (gimp_text_tool_set_layer): find a
suitable display and fully set up the tool (just as the vector
tool does). Fixes bug #322182.
(gimp_text_tool_button_press): chain up to activate the tool.
(gimp_text_tool_set_drawable): removed redundant check.
2006-05-06 Michael Natterer <mitch@gimp.org>
* app/tools/gimppainttool.c: connect to the context's
"brush-changed" signal and update the brush core's brush
accordingly. Fixes inconsistent brush preview when not moving
the mouse while the brush changes (bug #323404).
2006-04-25 Michael Natterer <mitch@gimp.org>
* app/tools/gimpthresholdtool.c: added an "Auto" button and
initialize the tool with a default threshold of 127 again.
Removed some cruft and did some cleanup.
2006-04-21 Sven Neumann <sven@gimp.org>
Applied a slightly modified version of a patch from Lode Leroy
(bug #336183):
* app/base/gimphistogram.[ch]: added new function
gimp_histogram_get_threshold() that returns an optimal
binarization threshold.
* app/tools/gimpthresholdtool.c: use the new function to
initialize the Threshold tool.
M ChangeLog
M app/paint/gimpconvolve.c
M app/paint-funcs/paint-funcs.c
M app/paint-funcs/paint-funcs.h
M app/tools/gimpiscissorstool.c
M libgimpbase/gimputils.c
M modules/colorsel_cmyk.c
M regexrepl/regex.c
2006-04-07 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable.[ch]: renamed gimp_drawable_data() to
gimp_drawable_get_tiles().
[lots of files]: changed accordingly.
2006-04-03 Sven Neumann <sven@gimp.org>
* app/tools/gimpscaletool.c: added a GimpSizeBox as a replacement
for the InfoDialog widgets. Needs more work ...
2006-03-31 Sven Neumann <sven@gimp.org>
* app/dialogs/Makefile.am
* app/dialogs/dialogs-types.h
* app/dialogs/dialogs.c
* app/dialogs/info-dialog.[ch]: good bye InfoDialog.
* app/tools/gimpperspectivetool.[ch]
* app/tools/gimprotatetool.[ch]
* app/tools/gimpsheartool.[ch]
* app/tools/gimptransformtool.[ch]: use GimpToolDialog instead of
InfoDialog and add the widgets manually.
* app/tools/gimpscaletool.c: commented out use of InfoDialog. This
tools still needs to be ported to GimpToolDialog.
2006-03-27 Sven Neumann <sven@gimp.org>
* app/tools/gimpforegroundselectoptions.c
* app/tools/gimpforegroundselecttool.c: use Ctrl to switch between
foreground and background refinement.
2006-03-26 Karine Delvare <edhel@gimp.org>
* app/tools/gimpcropoptions.c
* app/tools/gimprectangleoptions.[ch]
* app/tools/gimprectangletool.[ch]: moved options gui creation
from the tool to the options.
* app/tools/gimpselectionoptions.c
* app/tools/gimpnewrectselecttool.[ch]
* app/tools/gimpellipseselecttool.[ch]: ported ellipse selection
tool to the new rectangle interface.
2006-03-25 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c
* app/tools/gimpcurvestool.c
* app/tools/gimpforegroundselecttool.c
* app/tools/gimpselectiontool.c
* app/tools/gimpvectortool.c (GimpTool::oper_update): don't push
status messages when shell->proximity is FALSE. Make sure the old
status message gets popped regardless of shell->proximity's
value. Fixes stuck status bar messages.
2006-03-24 Sven Neumann <sven@gimp.org>
* app/tools/gimprectselecttool.c: renamed from "Rect Select" to
"Rectangle Select" (bug #335715).
* app/core/gimpchannel-select.c (gimp_channel_select_rectangle):
string change (bug #335715).
* plug-ins/common/svg.c: follow the change to the file format
label done in the shared-mime-info package (bug #335716).
* configure.in: fixed the --without-libtiff case in the summary
(bug #335764).
2006-03-17 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-render.c
* app/display/gimpdisplayshell.[ch]
* app/tools/gimpforegroundselectoptions.[ch]
* app/tools/gimpforegroundselecttool.c: allow to use red, green or
blue for the selection preview used by the foreground selection tool.
2006-03-02 Michael Natterer <mitch@gimp.org>
* app/core/gimppickable.[ch]: added new methods ::get_bytes() and
::flush()
* app/core/gimpchannel.c
* app/core/gimpdrawable.c
* app/core/gimpimagemap.c
* app/core/gimpprojection.c: implement ::get_bytes()
* app/core/gimpprojection.c: implement ::flush() (immediately
process both the idle renderer's queue and the unflushed update
areas, to make sure that any reading from the projection will
re-construct it).
* app/core/gimp-edit.c
* app/core/gimpchannel.c
* app/core/gimpimage-contiguous-region.c
* app/core/gimpimage-crop.c
* app/core/gimppalette-import.c
* app/paint/gimpclone.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpiscissorstool.c
* tools/pdbgen/pdb/image.pdb: use the pickable interface more
consistently when reading from any drawable or the projection, and
call gimp_pickable_flush() before doing so. Fixes bug #332933.
* app/core/gimpimage-pick-color.c: added comment why the we don't
call gimp_pickable_flush() here.
* app/pdb/image_cmds.c
* libgimp/gimpimage_pdb.c: regenerated.
2006-02-20 Karine Delvare <kdelvare@nerim.net>
* app/tools/gimprectangletool.c: zero division check should be
changed according to the aspect redefinition
2006-02-15 Sven Neumann <sven@gimp.org>
* app/widgets/gimptooldialog.c: do not unset focus-on-map for all
tool dialogs.
* app/tools/gimpcolorpickertool.c
* app/tools/gimpmeasuretool.c: explicitely do it here instead.
2006-02-14 Sven Neumann <sven@gimp.org>
Added some tool shortcuts:
* app/tools/gimpcroptool.c: Shift+C
* app/tools/gimpfuzzyselecttool.c: changed from Z to U.
* app/tools/gimpmagnifytool.c: Z.
* app/tools/gimpmeasuretool.c: Shift+M.
2006-02-07 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c: applied a patch from Dennis
Bjorklund that prevents a possible division by zero and fixes the
calculation of the center point.
2006-01-31 Sven Neumann <sven@gimp.org>
* app/tools/gimplevelstool.c (gimp_levels_tool_color_picker_new):
manually add the icons to the color picker buttons instead of
abusing the stock-id property. Fixes bug #325745.
2006-01-30 Michael Schumacher <schumaml@cvs.gnome.org>
* app/tools/gimpmeasuretool.c: use the closest corner of the
current pixel as origin. Fixes bug #329000.
2006-01-18 Michael Natterer <mitch@gimp.org>
* app/config/config-types.c: define GIMP_PARAM_STATIC_STRINGS
which is G_PARAM_STATIC_NAME|NICK|BLURB. Also define
GIMP_PARAM_READABLE, _WRITABLE and _READWRITE which include
GIMP_PARAM_STATIC_STRINGS.
* app/*/*.c: use them for all object properties so their
strings are not copied.
2006-01-14 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig-utils.[ch] (gimp_config_connect_full):
variant of gimp_config_connect() which allows the connected
objects to have different propertynames.
* app/widgets/widgets-enums.[ch]: removed enum GimpViewType...
* app/core/core-enums.[ch]: ...and added it here.
* app/widgets/gimpviewablebutton.[ch] (gimp_viewable_button_new):
added "button_preview_size" parameter so the button and popup
preview sizes can be specified separately.
* app/widgets/gimptemplateeditor.c: changed accordingly.
* app/widgets/gimpviewablebox.[ch] (gimp_prop_*_box_new):
new functions which take additional "view_type_prop" and
"view_size_prop" parameters and sync the passed context's
properties with the resp. properties of the viewable button.
* app/paint/gimppaintoptions.[ch]
* app/tools/gimpbucketfilloptions.c
* app/tools/gimpclonetool.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimptextoptions.[ch]: added view-type and view-size
properties to the options objects and use the new viewable box
constructors so the selected view types and sizes are persistant
across sessions. Fixes bug #315443.
2006-01-07 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpdialog.c: implement GtkWidget::hide() and set
the the focus widget to NULL, so a focussed entry emits focus_out
and its callbacks are invoked immediately (before the call to
gtk_widget_hide() returns). Fixes crashes and warnings in tool
dialogs when hitting escape while a spinbutton is being edited.
* app/tools/gimptransformtool.c
(gimp_transform_tool_force_expose_preview): return silently
instead of warning when being called while the draw tool is not
active (same scenario as above).
2005-12-27 Michael Natterer <mitch@gimp.org>
Fixed incomplete core/ui separation of paint tools and paint
methods:
* app/core/core-enums.h
* app/core/gimpcontext.[ch]: added a "paint-info" property and API
so the current paint method can be selected without the need for
an active tool.
(gimp_context_real_set_tool): set the paint-info to
tool_info->paint_info so the paint method follows the active tool
just as the active image follows the active display.
* app/core/gimp.h (struct Gimp)
* app/core/gimppaintinfo.[ch]: added "standard_paint_info" API
and stuff to be consistent with other context object properties.
* app/paint/gimp-paint.c: set the paintbrush as
standard_paint_info.
* app/core/gimpstrokedesc.c (gimp_stroke_desc_new): removed the
hack of falling back to the paintbrush when there is no active
tool and use the active paint method instead. Fall back to the
standard paint method if there is no active one.
(nothing in the core uses the active tool any more now).
* app/widgets/gimpdeviceinfo.h: add the paint info to the
properties which are saved in devicerc.
Added identifiers (names) and stock-ids to GimpPaintInfo:
* app/core/gimppaintinfo.[ch] (gimp_paint_info_new): added
identifier and stock-id parameters.
* app/core/gimptoolinfo.c (gimp_tool_info_new): removed the hack
of setting the paint-info stock-id from the tool-info stock-id.
* app/paint/paint-types.h
* app/paint/gimp-paint.c: changed GimpPaintRegisterCallback
accordingly.
* app/tools/gimp-tools.c (gimp_tools_register): changed paint
info names accordingly.
* app/paint/*.c (gimp_*_register): pass identifier and stock-id
accordingly.
2005-12-16 Sven Neumann <sven@gimp.org>
* app/paint/paint-enums.[ch]: changed description of
GIMP_CLONE_ALIGN_NO enum value.
* app/tools/gimpclonetool.c (gimp_clone_options_gui): use a combo
box for the align mode.
* app/tools/gimprectangletool.c: handle fixed_width,
fixed_height, and fixed_aspect in a reasonable way.
Also don't crash when user modifies aspect of a
nonexistent rectangle, and disconnect notify
handler in dispose.
* app/tools/gimprectangletool.c: don't crash when
user modifies width/height of nonexistent rectangle, and
make sure to disconnect option notify handlers in dispose.
Should fix bug #322396.
2005-11-21 Sven Neumann <sven@gimp.org>
* app/tools/gimpforegroundselectoptions.[ch]
* app/tools/gimpforegroundselecttool.c: renamed "discontiguous" to
"continuous", both in the UI and as a variable.
2005-11-19 Michael Natterer <mitch@gimp.org>
* app/tools/gimpaligntool.c
* app/tools/gimpcolortool.c
* app/tools/gimpfliptool.c
* app/tools/gimpmagnifytool.c
* app/tools/gimpmovetool.c
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c: started to get rid of all stock GDK
cursors in preparation of fixing bug #158407.
2005-11-06 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcolorpickertool.c (gimp_color_picker_tool_picked):
when picking FG or BG color from an indexed layer, select its
index in the colormap editor. Fixes bug #320660.
* app/tools/gimprectangletool.c:
* app/tools/gimpnewrectselecttool.c Make clicking inside an existing
selection create rect matching the marching ants.
2005-10-20 Sven Neumann <sven@gimp.org>
* app/tools/gimpforegroundselectoptions.[ch]
* app/tools/gimpforegroundselecttool.c: renamed "multiblob"
property to "discontinuous" and added a check button for it.
* app/tools/gimpcroptool.c
* app/tools/gimpnewrectselecttool.c
* app/tools/gimprectangletool.c
* app/tools/gimprectangletool.h: move tool_control out of rectangle
tool and into users of it, and make rect select execute on leaving
but crop tool not. Also rename functions and clean up formatting
a bit.
* app/tools/gimprectangletool.c: "execute" the tool if the
user switches to a different tool or clicks in a different
image. Good for rect select, not so sure about crop.
2005-10-19 Sven Neumann <sven@gimp.org>
* app/tools/gimpcurvestool.c (gimp_curves_tool_oper_update): set
cursor modifier and status bar hints to improve discoverability of
Curves tool features.
* app/tools/gimpaligntool.c: Remove bogus stuff about
weak pointers, and disconnect properly in dispose
callback instead of finalize, as suggested by mitch.
Fixes bug #314880.
2005-10-17 Sven Neumann <sven@gimp.org>
* app/base/base-enums.h
* app/base/siox.[ch]
* app/core/gimpdrawable-foreground-extract.[ch]
* app/tools/gimpforegroundselecttool.[ch]: export stateful SIOX to
the core API and use it from the foreground selection tool.
2005-10-17 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-foreground-extract.[ch]
* app/tools/gimpforegroundselectoptions.[ch]
* app/tools/gimpforegroundselecttool.c: added "multiblob"
property to GimpForegroundSelectOptions and pass it to
gimp_drawable_foreground_extract_siox().
2005-10-08 Karine Delvare <kdelvare@nerim.net>
* app/tools/gimpcroptool.c
* app/tools/gimpnewrectselecttool.c
* app/tools/gimprectangletool.c: added status bar info to tell the user
what to do once the rectangle area is drawn. Fixes bug #318267.
* gimp/app/paint/gimpbrushcore.c
* gimp/app/paint/gimpbrushcore.h
* gimp/app/paint/gimpclone.c
* gimp/app/paint/gimppaintbrush.c
* gimp/app/paint/gimppaintoptions.c
* gimp/app/paint/gimppaintoptions.h
* gimp/app/tools/gimppaintoptions-gui.c: Apply patch from
Adrian Likins to add "jitter" to paint tools (bug #163049),
with small fixes for coding style and default jitter set
to 0.2 instead of 0.0.
2005-09-26 Michael Natterer <mitch@gimp.org>
Allow to disable the color picker info dialog. Fixes bug #315011:
* app/tools/tools-enums.[ch] (enum GimpColorPickerMode): added
value GIMP_COLOR_PICK_MODE_PALETTE.
* app/tools/gimpcolorpickeroptions.[ch]: deprecated property
"add-to-palette" and added property "use-info-window". Changed
tool options GUI accordingly.
* app/tools/gimpcolorpickertool.c
(gimp_color_picker_tool_modifier_key): made <shift> toggle
the use-info-window property.
(gimp_color_picker_tool_picked): moved palette picking code
into the pick_mode switch() statement.
* app/tools/gimpcolortool.c (gimp_color_tool_cursor_update):
show a "plus" cursor when adding to the palette.
2005-09-25 Sven Neumann <sven@gimp.org>
* app/base/siox.[ch]: applied patch from Gerald Friedland and
Tobias Lenz. Introduces a hash table to speed up the algorithm
and changes the post-processing so that multiple disjunct objects
can be selected.
* app/tools/gimpforegroundselecttool.c: changed tooltip, the tool
doesn't any longer extract single objects only.
2005-09-24 Hans Breuer <hans@breuer.org>
* **makefile.msc : updated
* app/dialogs/user-install-dialog.c : only add the migrate page if
there is something to migrate from. Avoids on version being NULL.
* app/dialogs/file-save-dialog.c : the g_print() output was crashing
on the assumption that ->menu_label != NULL. It is for colorhtml.py.
* app/widgets/gimpselectiondata.c : use HAVE_UNISTD_H and move
* process.h definition by G_OS_WIN32 below it being defined
* app/widgets/gimpwidgets-utils.c(gimp_window_get_native) : cast
return value to (GdkNativeWindow) it is not necessary an int.
* libgimpwidgets/gimpwidgets.def : added gimp_zoom_type_get_type
* plug-ins/help/gimp-help-lookup.c : dynamic lookup of help_root
instead of hard-coding DATADIR/GIMP_HELP_PREFIX
* plug-ins/xjt/xjt.c : there is no pid_t with msvc, typedef one.
2005-09-25 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpwidgets.def
* libgimpwidgets/gimpzoommodel.[ch]: added gimp_zoom_model_zoom()
and changed gimp_zoom_model_get_fraction() to take a model instead
of the zoom factor.
* app/display/gimpdisplayshell.[ch]: use a GimpZoomModel for the
display scale factor.
* app/actions/image-commands.c
* app/actions/view-actions.c
* app/actions/view-commands.c
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-title.c
* app/display/gimpnavigationeditor.c
* app/display/gimpstatusbar.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpmagnifytool.c: changed accordingly.
* app/widgets/widgets-enums.h: Moved the GimpZoomType enum from here...
* libgimpwidgets/gimpwidgetsenums.h: ...to here.
* app/widgets/widgets-enums.c
* libgimpwidgets/gimpwidgetsenums.c: regenerated.
* app/display/gimpdisplayshell-scale.[ch]: removed
gimp_display_shell_scale_zoom_step and
gimp_display_shell_scale_get_fraction from here...
* libgimpwidgets/gimpzoommodel.[ch]: ... to here so we can use these
utility functions in plug-ins and in the core.
Also removed the step-size property since the zoom-model now use
gimp_zoom_model_zoom_step.
* app/actions/view-commands.c
* app/display/gimpdisplayshell-title.c
* app/display/gimpdisplayshell.c
* app/tools/gimpmagnifytool.c: modified accordingly.
* libgimp/gimpzoompreview.c: don't pass any argument to the
gimp_zoom_model_new function.
* libgimpwidgets/gimpwidgets.def: added gimp_zoom_model_zoom_step
(gimp_zoom_model_get_fraction was already there)
* devel-docs/app/app-sections.txt: removed
gimp_display_shell_scale_zoom_step and
gimp_display_shell_scale_get_fraction.
2005-09-16 Sven Neumann <sven@gimp.org>
* app/tools/gimpimagemaptool.c (gimp_image_map_tool_initialize):
set the imagemap tool dialogs transient to the image window. See
comments in bug #316521.
2005-09-13 Karine Delvare <kdelvare@nerim.net>
* app/tools/gimpcroptool.c
* app/tools/gimprectangleoptions.c
* app/tools/gimprectangletool.c
* app/tools/gimpnewrectselecttool.c: changed the way we stay inside
images boundaries so each tool decides whether it does or not.
2005-09-13 Karine Delvare <kdelvare@nerim.net>
* app/tools/gimprectangletool.c: don't modify the rectangle while
moving, and stick to edges when going out of image boundaries.
2005-09-10 Michael Natterer <mitch@gimp.org>
* app/tools/gimpiscissorstool.c (gimp_iscissors_tool_button_release):
use gimp_draw_tool_on_handle() to figure if we need to close the
path. Makes sure that the anchor's sensitive area matches its size
on screen. Fixes bug #134250.
2005-09-10 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c (gimp_clone_options_gui): moved the
"Sample merged" toggle below the "Image source" radio button.
Also fixed capitalization of "Sample merged".
2005-09-10 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c (gimp_clone_options_gui): moved the
"Sample Merged" toggle below the "Image Source" radio button.
2005-09-04 Michael Natterer <mitch@gimp.org>
Cleaned up and fixed the order in which default tool options and
user context values are initialized, and added loading / saving of
the global user context. Fixes bug #165078.
* app/core/Makefile.am
* app/core/gimp-contexts.[ch]: new files which manage the global
contexts. Contains gimp_contexts_init/exit/load/save/clear().
* app/core/gimp.c: use the new init/exit functions instead of
implementing the stuff here.
* app/tools/gimp-tools.c: load/save/clear the user context from
here so it follows the same logic as the tool options. Reset all
tool options before loading the user context and copy the user
context's property to all tool options before loading tool
options.
* app/core/gimptoolinfo.c (gimp_tool_info_new): don't initialize
the tool options with the users context's properties. It's way too
early here and they will be overwritten later.
* app/widgets/gimpdevices.c (gimp_devices_restore): initialize all
device contexts with the user context's properties before loading
the devices and copying the active one back to the user context.
2005-09-03 Michael Natterer <mitch@gimp.org>
* app/base/pixel-region.[ch]: some general cleanup.
(pixel_region_init_temp_buf)
(pixel_region_init_data): new functions which initialize pixel
regions on TempBufs and on raw contiguous arrays of pixel data.
(pixel_region_configure): fixed a bug that has probably been there
forever: when processing contiguous (non-tiled) data, interpret
the original x and y coordinates of the region as offsets into
the data. Before this fix, the initial x and y were simply ignored
(by using them in a broken way), thus always forcing the upper
left corner of the region being the beginning of the passed data.
Lots of code was working around this problem by setting the
pixel_region's data pointer to the proper starting pixel of the
region in the middle the buffer.
* libgimp/gimppixelrgn.c: some general cleanup.
(gimp_pixel_rgn_configure): same fix as above. Fortunately, nobody
seems to know that libgimp pixel regions can be used on arrays of
data, just as core ones. Only two plug-ins were using this
feature, and they are antique and written by spencer and federico,
respectively. They both don't use offsets into the buffers and are
not affected by this change. It's highly unlikely that anybody out
there knows/uses this feature, so it can IMHO be safely changed.
* app/base/temp-buf.c
* app/core/gimpbuffer.c
* app/core/gimpdrawable-combine.c
* app/core/gimpdrawable-preview.c
* app/core/gimpimage-preview.c
* app/core/gimplayer.c
* app/paint/gimpbrushcore.c
* app/paint/gimpclone.c
* app/paint/gimpconvolve.c
* app/paint/gimpdodgeburn.c
* app/paint/gimppaintcore.c
* app/paint/gimpsmudge.c
* app/tools/gimpiscissorstool.c
* app/tools/gimppainttool.c: use the pixel_region_init_foo()
functions instead of initializing regions of TempBufs and raw data
manually. Removed lots of workarounds for the broken offset
handling. The changed places of code are much more readable now.
2005-09-02 Sven Neumann <sven@gimp.org>
* app/tools/gimptextoptions.c
* app/widgets/gimpwidgets-utils.[ch]: dropped the labels from text
tool options that have icons. Reduces visual clutter.
2005-08-29 Michael Natterer <mitch@gimp.org>
The previous commit added tons of code just to completely break
clone align behavior. Reverted lots of the changes and do the
sample-merged stuff at the innermost place (gimp_clone_motion).
This change also enables changing sample-merged between paint
strokes.
* app/paint/gimpclone.[ch] (struct GimpClone): changed member
"src_pickable" back to "src_drawable".
(gimp_clone_paint): completely reverted.
(gimp_clone_motion): do the drawable/projection -> pickable
stuff and drawable offset handling here.
Fixed signal handling to connect to the drawable's "removed"
signal (not "disconnect", eek). Disconnect from the signal once
the drawable has been removed.
* app/tools/gimpclonetool.c: changed accordingly.
2005-08-28 Michael Natterer <mitch@gimp.org>
Immplement "Sample Merged" for the clone tool. Fixes bug #123627.
* app/paint/gimppaintcore.[ch] (struct GimpPaintCore): added
members "saved_proj_tiles" which stores the unmodified projection,
"orig_proj_buf" which stores the unmodified temp paint application
buf and "use_saved_proj" which controls if all the additional
stuff should be allocated and managed.
(gimp_paint_core_start): allocate the saved_proj_tiles if needed.
(gimp_paint_core_get_orig_proj): new function like
gimp_paint_core_get_orig_image() which returns unmodified
projection pixels for paint application.
(gimp_paint_core_validate_saved_proj_tiles): new function like
gimp_paint_core_validate_undo_tiles() which copies the tiles that
will be dirtied to saved_proj_tiles.
(gimp_paint_core_paste): call above save_proj_tiles() so
projection tiles are saved before dirtying them.
* app/paint/gimpclone.[ch]: replaced member src_drawable by
src_pickable and use the image's projection if sample_merged it
TRUE. Adjust src offsets accordingly and use GimpPaintCore's new
get_orig_proj() API to get the src pixels.
* app/paint/gimpcloneoptions.[ch]: added boolean "sample_merged"
property.
* app/tools/gimpclonetool.c: follow GimpClone's src_drawable ->
src_pickable change.
(gimp_clone_tool_button_press): set the paint_core's
"use_saved_proj" boolean before chaining up.
(gimp_clone_options_gui): add a "Sample Merged" toggle button.