2005-09-05 Michael Natterer <mitch@gimp.org>
* app/actions/edit-actions.c
* app/actions/edit-commands.[ch]
* menus/image-menu.xml.in: applied modified patch from David
Gowers which adds an "edit-named-copy-visible" actions and its
menu item. Addresses bug #315130.
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/paint/gimppaintcore.c (gimp_paint_core_get_orig_image)
(gimp_paint_core_get_orig_proj): replaced manual calculation of
the offset of a pixel in a tile (marked as /* dubious... */ for a
reason) by simply using the offset parameters of tile_data_pointer().
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-03 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.[ch] (gimp_edit_paste_as_new): don't create a
display here.
(gimp_edit_named_cut)
(gimp_edit_named_copy)
(gimp_edit_named_copy_visible): new functions containing named
buffer wrappers around the functions affecting the global buffer
only.
* app/actions/edit-commands.c: use the new functions instead of
implementing them here, create a display for the image returned
by paste as new.
* app/actions/buffers-commands.c
* app/widgets/gimptoolbox-dnd.c: create displays here too.
* tools/pdbgen/pdb/edit.pdb: added wrappers for paste as new and
wrappers for all the cut/copy/paste named stuff.
Fixes bug #315130. Cleaned up and de-obfuscated.
* libgimp/gimp.def: changed accordingly.
* app/pdb/edit_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpedit_pdb.[ch]: regenerated.
2005-09-02 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c: allow to popup menus on
empty container views using the standard Shift-F10 keybinding.
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-09-02 Michael Natterer <mitch@gimp.org>
* tools/test-clipboard.c (test_clipboard_copy_callback): don't
quit the main loop after transferring the data to GTK, it needs a
running main loop to get the chunks tranferred to X.
2005-09-02 Sven Neumann <sven@gimp.org>
* app/dialogs/convert-dialog.c
* app/dialogs/image-merge-layers-dialog.c
* app/dialogs/layer-add-mask-dialog.c
* app/dialogs/offset-dialog.c: use verbs instead of "OK" in the
confirmative dialog button.
2005-09-02 Tor Lillqvist <tml@novell.com>
* authors.xml: Mark people as documenter or artist, based on
ChangeLogs and other information. Remove translator names, they
are in the respective .po files.
2005-09-02 Sven Neumann <sven@gimp.org>
* plug-ins/jpeg/jpeg-load.c (load_image)
* plug-ins/jpeg/jpeg-save.c (save_image): removed tile cache again,
it doesn't help for the way the plug-in accesses the pixels.
2005-09-01 Sven Neumann <neumann@jpk.com>
* app/core/gimppalette.[ch]: reverted, it duplicates existing
functionality.
* app/core/gimppalette-import.c
(gimp_palette_import_from_indexed_image): name the colors using
their index in the colormap.
2005-08-31 Michael Natterer <mitch@gimp.org>
* app/dialogs/preferences-dialog.c
(prefs_check_button_add_with_icon): added optional size group
parameter and add the icon to the group.
(prefs_dialog_new): align the icons on the tool options and
toolbox pages.
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-29 Michael Natterer <mitch@gimp.org>
* plug-ins/common/gif.c: added toggles which allow to always use
the frame delay and disposal entered in the dialog, overriding the
ones specified in the layer names. Fixes bug #314726. Also fixed
missing and non-working mnemonics.
2005-08-29 Sven Neumann <sven@gimp.org>
* plug-ins/common/poppler.c: retitled dialog to "Import from PDF"
and changed the confirmative button label to "Import".
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.
2005-08-27 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewrendererpalette.c
(gimp_view_renderer_palette_init): initialize renderer->columns
to != 0 to avoid floating point exceptions on initial layout
calculation. Fixes bug #314663.
2005-08-27 Michael Schumacher <schumaml@cvs.gnome.org>
* plug-ins/common/gradmap.c: applied a patch by David Gowers,
which makes palette-map behave the same as gradient-map. Fixes bug
313458.
2005-08-26 Sven Neumann <sven@gimp.org>
* plug-ins/common/svg.c: deal with SVG API change. This is a
compile-time check and thus somewhat ugly because it requires a
recompile of the plug-in when updating librsvg. Fixes bug #314400.
2005-08-26 Tor Lillqvist <tml@novell.com>
* app/plug-in/plug-in.c (plug_in_prep_for_exec, plug_in_open):
Instead of passing a child_setup function whose body is ifdeffed
out on Win32 to g_spawn_async(), pass NULL for child_setup on
Win32. Newer g_spawn_async() implementations on Win32 warn if
child_setup functions are attempted to be used, as they don't make
sense because without any fork(), they are called in the parent
process.
2005-08-25 Michael Natterer <mitch@gimp.org>
* configure.in: define FOO_DISABLE_DEPRECATED for the new stable
versions of GTK+ and Pango.
Check for poppler >= 0.4.1, they did another API change.
* plug-ins/common/poppler.c: and some more #ifdefs to
poppler_page_render_to_pixbuf().
2005-08-25 Sven Neumann <sven@gimp.org>
* libgimpbase/gimputils.h (gimp_canonicalize_identifier): sync
parameter name with implementation to please gtk-doc.
2005-08-24 Tor Lillqvist <tml@novell.com>
Make GIMP work on Win32 even if installed in a path containing
random non-ASCII characters.
* libgimpbase/gimpenv.c (gimp_toplevel_directory): [Win32] Use
wide-char API on NT-based Windowses. Keep the toplevel directory
name in UTF-8. The rest of GIMP assumes it is UTF-8 anyway, and
for instance passes file names constructed from it to g_open().
* app/plug-in/plug-in.c (plug_in_open): On Win32, if compiled
against GLib < 2.8.2, convert the pathname arguments passed to
g_spawn_async() to locale charset (system codepage). The
g_spawn*() functions in GLib < 2.8.2 take system codepage
arguments and not UTF-8.
2005-08-24 Sven Neumann <sven@gimp.org>
* plug-ins/script-fu/scripts/i26-gunya2.scm
* plug-ins/script-fu/scripts/ripply-anim.scm: reverted the last
change...
* plug-ins/common/displace.c: ... and fixed the plug-in instead.
The number of parameters must not change. Provide a new procedure
for polar mode instead.
2005-08-24 Tor Lillqvist <tml@novell.com>
* plug-ins/script-fu/scripts/i26-gunya2.scm
* plug-ins/script-fu/scripts/ripply-anim.scm: Add the new last
parameter to plug-in-displace calls. (See entry for displace.c
from 2005-02-10 below.)
2005-08-23 Sven Neumann <sven@gimp.org>
* app/base/siox.c: minor optimizations.
* app/actions/gradients-actions.c
* app/actions/patterns-actions.c
* plug-ins/metadata/interface.c: applied patch from Stephan Binner
that fixes wrong use of ellipsis (bug #309657).
2005-08-22 Michael Natterer <mitch@gimp.org>
* plug-ins/common/sample_colorize.c (smp_dialog): applied patch
from David Gowers that adds mnemonics to all action area
buttons. Fixes bug #314191.
2005-08-21 Michael Natterer <mitch@gimp.org>
* app/tools/gimpselectionoptions.c (gimp_selection_options_gui):
the "Antialias" toggle got lost, resurrect it.
2005-08-21 Michael Natterer <mitch@gimp.org>
* app/paint/gimppencil.h
* app/paint/gimppenciloptions.[ch]
* app/widgets/widgets-types.h
* app/widgets/gimptooldialog.h: don't simply typedef object
instance structs which add no members as their parent instance
structs. Give them their own instance structs. Fixes gtk-doc
confusion.
2005-08-21 Michael Natterer <mitch@gimp.org>
* app/paint/gimppencil.h
* app/paint/gimppenciloptions.h
* app/widgets/widgets-types.h
* app/widgets/gimptooldialog.h: don't simply typedef object
instance structs which add no members as their parent instance
structs. Give them their own instance structs. Fixes gtk-doc
confusion.
2005-08-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_proc_changed):
when looking for the file extension, only look at the part after
the last directory separator.
2005-08-20 Michael Natterer <mitch@gimp.org>
* app/base/boundary.[ch]: renamed puclic functions, defines and
enums to live in a proper "boundary" namespace. Cleaned up and
simplified internal code even more.
* app/core/gimpchannel.c
* app/core/gimpdrawable-stroke.c
* app/core/gimplayer-floating-sel.c
* app/paint/gimppaintcore-stroke.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpfuzzyselecttool.c
* app/tools/gimppainttool.c: changed accordingly.
2005-08-20 Michael Natterer <mitch@gimp.org>
* app/base/boundary.c: moved the entire internal state of boundary
creation and simplification from <eek>global variables</eek> to a
new "Boundary" struct that needs to be newly allocated for each
boundary. Yes this allocates and frees memory more often than
before but the old code was simply one big eek.
2005-08-20 Michael Natterer <mitch@gimp.org>
* app/base/boundary.c (sort_boundary): look at the passed "ns"
variable instead of at the global "num_segs" one to figure if the
passed array of BoundSegs is empty. Fixes bug #313922 at its root.
2005-08-20 Sven Neumann <sven@gimp.org>
* authors.xml: expemplary added artist and documenter roles to
some contributors.
* app/dialogs/authors.xsl: generate arrays for the new roles.
* app/dialogs/authors.h: regenerated.
* app/dialogs/about-dialog.c: pass the new arrays to the
GtkAboutDialog constructor.
2005-08-20 Sven Neumann <sven@gimp.org>
* authors.dtd
* authors.xml: simplified by making dc: the default namespace.
* authors.xsl
* app/dialogs/authors.xsl: match the toplevel element in the dc:
namespace.
2005-08-19 Sven Neumann <sven@gimp.org>
* authors.dtd
* authors.xml: use elements and attributes from Dublin Core.
* authors.xsl
* app/dialogs/authors.xsl: changed accordingly.
* app/dialogs/authors.h: regenerated.
* app/dialogs/about-dialog.c: Peter and Spencer are now part of
the list of authors (but listed before everyone else).
2005-08-19 Sven Neumann <sven@gimp.org>
* app/dialogs/authors.xsl: generate a NULL terminated array.
* app/dialogs/authors.h: regenerated.
* app/dialogs/about-dialog.[ch]: embedded the about box into a
GtkAboutDialog.
* app/dialogs/dialogs-constructors.c: pass a GimpContext to
about_dialog_create().
2005-08-19 Michael Natterer <mitch@gimp.org>
Poppler 0.4 changes the API of poppler_page_render_to_pixbuf():
* configure.in: define HAVE_POPPLER_0_4 if it is available.
* plug-ins/common/poppler.c: added some #ifdefs to compile with
both the new and old version. Can be removed in some weeks
propably.
2005-08-18 Sven Neumann <sven@gimp.org>
* app/tools/gimpforegroundselecttool.c: removed reference to SIOX
algorithm from tooltip, it's an implementation detail.
2005-08-18 Sven Neumann <sven@gimp.org>
* app/dialogs/user-install-dialog.c: updated year in copyright.
* libgimpwidgets/gimpwidgets-private.c (gimp_widgets_init):
register the default window icons in descending sizes.
2005-08-18 Sven Neumann <sven@gimp.org>
* app/core/gimptemplate.c: go back to using dpi as the default
resolution unit.
* app/core/gimp-utils.[ch]: moved the code to determine the unit
from the locale settings here as gimp_get_default_unit().
* app/dialogs/print-size-dialog.c
* app/widgets/gimpimagepropview.c: use the unit returned by the
new function to display the print size (bug #107497).
2005-08-18 Sven Neumann <sven@gimp.org>
* plug-ins/common/procedure-browser.c (run): reverted last change.
* libgimp/gimpprocbrowserdialog.[ch]: emit new signal "row-activated"
instead of emitting "response" with GTK_RESPONSE_APPLY.
* plug-ins/pygimp/procbrowser.c
* plug-ins/script-fu/script-fu-console.c: connect to "row-activated"
and call gtk_dialog_response() with GTK_RESPONSE_APPLY.
2005-08-18 Michael Natterer <mitch@gimp.org>
* plug-ins/common/animoptimize.c
* plug-ins/common/pnm.c
* plug-ins/metadata/interface.c
* plug-ins/metadata/metadata.c: some forgotten canonical names.
* plug-ins/metadata/Makefile.am
* plug-ins/metadata/metadata.h: new header containing the
procedure name #defines for metadata.
2005-08-17 Sven Neumann <sven@gimp.org>
* configure.in: check for langinfo.h and _NL_MEASUREMENT_MEASUREMENT.
* app/core/gimptemplate.c: try to determine the default unit from
the locale settings. Supposed to fix bug #107497.
2005-08-17 Tor Lillqvist <tml@novell.com>
* plug-ins/winsnap/Makefile.am (LDADD): Use $(WINDRES) to handle
cross-compilation.
* plug-ins/winsnap/winsnap.rc: Refer to the .ico files in
lowercase, in case cross-compiling.
2005-08-17 Sven Neumann <sven@gimp.org>
* app/base/siox.c: applied patch by Kristian Jantz. Reimplements
find_max_blob() so that it needs less memory. Slows things down a
bit, but that can be improved later.
2005-08-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppaletteview.c (gimp_palette_view_focus): when
focussing the widget, select the palette's first entry if none is
selected. Enables cursor navigation after tabbing in.
* plug-ins/script-fu/scripts/grid-system.scm: Rename "Grid" to
"Divisions" to avoid confusion with the existing grid plug-in;
move into Render->Pattern along with the other Grid plug-in.
2005-08-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppaletteview.c (gimp_palette_view_focus): return
FALSE on TAB_FORWARD and TAB_BACKWARD. Enables tabbing out of the
widget.
2005-08-17 Michael Natterer <mitch@gimp.org>
* app/actions/layers-actions.c
* app/actions/plug-in-actions.c
* app/actions/image-actions.c: moved all color menu actions to
image-actions.c because that's the place where we collect menu
actions of menus that don't have its own foo-actions.c file.
Renamed them all to "colors-foo-menu".
* menus/image-menu.xml.in: changed accordingly.
* menus/image-menu.xml.in
* app/actions/image-actions.c
* app/actions/plug-in-actions.c
* plug-ins/common/compose.c
* plug-ins/common/decompose.c
* plug-ins/common/vinvert.c:
Remove erroneous extra *compose entries, and move *compose into
a Components submenu (re IRC discussion); move Value Invert to
near Invert (suggested by mitch)
2005-08-16 Sven Neumann <sven@gimp.org>
* configure.in
* plug-ins/uri/Makefile.am: redid the libgnomeui and gnome-vfs
checks so that pkg-config combines the compiler and linker flags
instead of concatenating them in the Makefile.
2005-08-15 Michael Natterer <mitch@gimp.org>
* configure.in: check for libgnomeui-2.0. Added version
requirements (>= 2.10.0) for libgnomeui and gnome-vfs.
* plug-ins/uri/Makefile.am
* plug-ins/uri/uri-backend-gnomevfs.c: if libgnomeui is available,
call gnome_authentication_manager_init() so the URI plug-in can
access sites that require authentication.
(this needs more hacking so packagers can build both versions of
the uri plug-in at the same time, since they will want to make the
libgnomeui dependency optional)
2005-08-15 Manish Singh <yosh@gimp.org>
* plug-ins/common/sample_colorize.c (smp_constrain): add an extra
user data arg, so we fit the GimpDrawableConstraintFunc type.
2005-08-15 Sven Neumann <sven@gimp.org>
* plug-ins/rcm/rcm_callback.c
* plug-ins/rcm/rcm_dialog.c
* plug-ins/rcm/rcm_misc.[ch]: redraw the previews if their size
changes. Fixes bug #172284.
2005-08-15 Michael Natterer <mitch@gimp.org>
* plug-ins/common/poppler.c: make sure the opened image has a
filename that cannot be saved (ok, we don't have a PDF save
plug-in, but PS does the same and this way it's consistent).
* plug-ins/common/poppler.c
* plug-ins/common/postscript.c: canonicalize procedure and
parameter names.
2005-08-15 Michael Natterer <mitch@gimp.org>
* plug-ins/common/postscript.c: applied patch from Felix Riemann
that adds page counting and a page selector widget to the load
dialog. Fixed some minor issues in the patch and added code that
names layers and images after the document's pages. Disable undo
on all created images and set them clean before returning them.
Addresses bug #138495.
2005-08-13 Manish Singh <yosh@gimp.org>
* app/core/gimpimage-preview.c (gimp_image_get_new_preview): if the
offsets of the layer are such that they are just on the border of
the image, detect that and bail instead of trying to make a
sub-preview with a 0 dimension.
* plug-ins/common/sample_colorize.c: shut up a Gtk-Critical Warning
that happened after reopening the filter, but only when a gradient had
been selected on the previous invocation.
2005-08-10 Michael Natterer <mitch@gimp.org>
* plug-ins/common/xbm.c (mask_ext_entry_callback): fixed
copy'n'paste bug that was clearing the identifier prefix when
editing the mask extension.
2005-08-10 Simon Budig <simon@gimp.org>
* app/tools/gimpvectortool.c: small fixes to the cursors - now
the handles have their respective cursor as well.
2005-08-10 Michael Natterer <mitch@gimp.org>
* app/dialogs/preferences-dialog.c (prefs_dialog_new): don't have
widgets from different pages in the same size group. Fixes spacing
on the "Display" page.
2005-08-09 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs.[ch] (extract_from_inten_pixels)
(extract_from_indexed_pixels): pass src_bytes and dest_bytes to
these functions instead of just the source's bytes and whether it
has an alpha. Honor dest_bytes when extracting instead of crashing
by always asuming that the destination has alpha.
Fixes bug #312392.
(extract_from_region): removed has_alpha paramater. pass
src->bytes and dest->bytes to above functions.
* app/core/gimpselection.c (gimp_selection_extract): changed
accordingly.
2005-08-09 Michael Natterer <mitch@gimp.org>
* cursors/gimp-tool-cursors.xcf: changed path tool cursor to
actually show a path and added 3 new cursors which are supposed
to show a path's anchor, handle and segments. Someone really
needs to beautify these...
* cursors/tool-paths.png
* cursors/xbm/tool-paths-mask.xbm
* cursors/xbm/tool-paths.xbm: changed accordingly.
* cursors/Makefile.am
* cursors/tool-paths-anchor.png
* cursors/tool-paths-control.png
* cursors/tool-paths-segment.png
* cursors/xbm/tool-paths-anchor-mask.xbm
* cursors/xbm/tool-paths-anchor.xbm
* cursors/xbm/tool-paths-control-mask.xbm
* cursors/xbm/tool-paths-control.xbm
* cursors/xbm/tool-paths-segment-mask.xbm
* cursors/xbm/tool-paths-segment.xbm: new files.
* app/widgets/widgets-enums.h (enum GimpToolCursorType): added
PATH_ANCHOR, PATH_CONTROL and PATH_SEGMENTS.
* app/widgets/gimpcursor.c: added the new cursors.
* app/tools/gimpvectortool.c (gimp_vector_tool_cursor_update):
use them.