2003-08-20 Simon Budig <simon@gimp.org>
* app/vectors/gimpstroke.[ch]: Add hooks for insertion of points
(and testing if insertion is possible)
* app/vectors/gimpbezierstroke.c: Implement it for BezierStrokes
* app/tools/gimpvectoroptions.c: Adjusted Options-GUI.
* app/tools/gimpvectortool.[ch]: Detect if the pointer is over
the curve. Make it possible to insert points in the curve.
Select the "Insert/Delete Nodes" mode in the tool options and
click on the curve.
2003-08-20 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-mask-select.c
(gimp_image_mask_select_channel): fixed GIMP_CHANNEL_OP_INTERSECT
for channels which are smaller than the selection (create a temp
channel like rect and ellipse select do). Also, don't modify the
input channel when feathering.
2003-08-20 Sven Neumann <sven@gimp.org>
* app/gui/preferences-dialog.c
* app/text/gimptextlayer-transform.c
* app/widgets/gimpitemfactory.c: some changes for legacy compilers
based on a patch from Avi Bercovich (bug #120251).
* app/composite/: Regenerated installers and testers.
* app/composite/make-install.py: increased tests of pixels to 1024*1024+1
* app/composite/gimp-composite-mmx.c (gimp_composite_overlay_rgba8_rgba8_rgba_mmx):
Backed out of the current build. Although the unit tests all
pass, the emperical evidence is that something is wrong with it.
2003-08-19 Michael Natterer <mitch@gimp.org>
* app/tools/gimppainttool.c
(gimp_paint_tool_oper_update,cursor_update): always look for the
active drawable, not for the active layer. Fixes line and brush
preview drawing for channels.
2003-08-19 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_reorder_item): when reordering the
selected item, don't just scroll to its position but call
gimp_container_view_select_item(), so the views' state
(e.g. raise/lower buttons) updates correctly. Fixes bug #120177.
2003-08-19 Simon Budig <simon@gimp.org>
* app/vectors/gimpvectors.h
* app/vectors/gimpstroke.[ch]: removed temp_anchor stuff. I don't
think that this is needed. Added virtual function to determine the
closest point on the curve to a given target point.
* app/vectors/gimpbezierstroke.c: implemented
gimp_bezier_stroke_nearest_point_get () - up to now untested and
unused.
2003-08-18 Michael Natterer <mitch@gimp.org>
* app/tools/gimpvectortool.c: cleaned up GimpTool, GimpDrawTool
and vectors_tool->vectors state handling a lot. Still does weird
things when switching between images and/or displays but it's
better than before...
2003-08-18 Michael Natterer <mitch@gimp.org>
Finished the addition of "gboolean reverse" to the gradient API:
* tools/pdbgen/pdb/gradients.pdb: added "reverse" params to
gimp_gradients_sample_uniform(), sample_custom() and
get_gradient_data().
* app/pdb/gradients_cmds.c
* libgimp/gimpgradients_pdb.[ch]: regenerated.
* libgimp/gimpgradientmenu.c: changed accordingly.
Made everything compile with the new API:
* plug-ins/FractalExplorer/Dialogs.c
* plug-ins/FractalExplorer/FractalExplorer.[ch]: got lost in
"reverse" adding, whitespace removal and general code cleanup.
I better commit this now before continuing, even though "reverse"
adding is not finished.
* plug-ins/common/sample_colorize.c: removed own gradient
reversing code, use "reverse" instead.
* plug-ins/common/gradmap.c
* plug-ins/flame/flame.c
* plug-ins/gflare/gflare.c
* plug-ins/pagecurl/pagecurl.c: simply pass reverse == FALSE and
added #warnings that more work needs to be done. Some whitespace
removal and minor cleanup.
* app/composite/gimp-composite-dispatch.[ch]: retired and removed.
* app/composite/Makefile.am: The 'test' target now builds and runs
all the tests in TESTS
Fixed typos of mismatched parenthesis in 'regenerate' target
* app/composite/Makefile.am: TESTS now include ss2 and 3dnow
instruction sets.
* app/composite/make-gimp-composite-dispatch.py: retired and removed.
* app/composite/gimp-composite.c: call the installers of all the
various instruction sets supplied by x86 type processors.
* app/base/base.c (base_init): Call gimp_composite_init() *before*
paint_funcs_setup() (preparation for retiring
app/paint-funcs/paint-funcs.c)
* app/composite/gimp-composite-sse2.[ch]
* app/composite/gimp-composite-3dnow.[ch]
* app/composite/gimp-composite-sse2-installer.c
* app/composite/gimp-composite-3dnow-installer.c:
Added
* app/composite/make-installer.py: generate regression test
programmes that take the command line arguments --iterations and
--n-pixels for the number of iterations of a set of tests, and the
number of pixels to use in each test, respectively.
Conditionally compile tests in order to build and run tests on
machines that can actually perform the tests.
Failing a regression test now causes remaining tests to be
skipped and a non-zero exit code by the programme.
* app/composite/gimp-composite.c (gimp_composite_init): make gimp-composite
functions the default.
* app/composite/make-installer.py: changed option --n_pixels to --n-pixels
2003-08-17 Michael Natterer <mitch@gimp.org>
Fixed bug #79897 for all parasite procedures:
* tools/pdbgen/app.pl: UTF-8 validate parasite->name.
* tools/pdbgen/pdb/parasite.pdb: UTF-8 validate parasite names which
are passed separately from the parasite struct.
* app/pdb/parasite_cmds.c: regenerated.
* app/composite/gimp-composite-{mmx,sse,altivec,vis}-{installer,test}.c:
regnerated
* app/composite/gimp-composite-sse.c
(gimp_composite_overlay_rgba8_rgba8_rgba8_sse): fixed (rewrote)
* app/composite/make-installer.py:
command line option --iterations to set the number of iterations for a test.
command line option --n_ixels to set the number of pixels for a test.
* app/composite/gimp-composite-mmx.c
(gimp_composite_grain_merge_rgba8_rgba8_rgba8_mmx): fixed (rewrote)
(gimp_composite_overlay_rgba8_rgba8_rgba8_mmx): fixed (rewrote)
(gimp_composite_value_rgba8_rgba8_rgba8_mmx):
new testing shows it to be broken (temporarily removed from use)
2003-08-17 Sven Neumann <sven@gimp.org>
* app/base/base.c (base_init): added some newlines.
* data/patterns/brick.pat
* data/patterns/leopard.pat: replaced with retouched versions done
by Guillermo S. Romero (bug #118796).
2003-08-17 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-layer-select.[ch]: made the layer
cycling circular. Removed the static layer_select variable and
allocate a new struct for each use. Made it use Ctrl+Tab for
forward cycling and Ctrl+Shift+Tab for backward so it doesn't use
Alt any more. Cleanup.
* app/display/gimpdisplayshell-callbacks.c: changed it from Alt to
Ctrl here, too.
Fixes all the stuff mentioned in bug #119236.
2003-08-17 Simon Budig <simon@gimp.org>
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpbezierstroke.[ch]: Virtualized
gimp_bezier_stroke_extend, added gimp_stroke_is_extendable.
* app/text/gimptext-vectors.c: changed accordingly.
* app/vectors/gimpvectors.[ch]: added gimp_vectors_anchor_select.
* app/tools/gimpvectoroptions.[ch]: dummy switch for future
extensions
* app/tools/gimpvectortool.[ch]: Major overhaul. Made use of
gimp_vector_tool_oper_update, cleaned up
gimp_vector_tool_button_press a lot and finally have a
working cursor_update. Still buggy, but I wanted to have it
in CVS.
2003-08-16 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcroptool.c: added GimpTool::oper_update()
implementation and moved stuff from button_press() and
cursor_update() there. Fixed the state of the tool to be only
ACTIVE while button1 is pressed. Cleanup.
2003-08-16 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): if the canvas has no
focus on button_press, set it explicitly instead of asuming that
focus_in will follow anyway. Should once more fix bug #85202.
Grab the keyboard while button1 is down so the focus can't go away
while the tool can't receive modifier events. Should fix more
#85202-alike bugs.
2003-08-15 Sven Neumann <sven@gimp.org>
* app/text/Makefile.am
* app/text/gimptextlayer-transform.[ch]: new files that hold yet
unused GimpItem transform methods.
* app/text/gimptextlayer.[ch]: export gimp_text_layer_render().
* app/text/gimptext-bitmap.[ch]
* app/text/gimptext-private.h
* app/text/gimptext-vectors.c
* app/text/gimptextlayout-render.c: use the transformation matrix.
This doesn't change anything since it's still always the identity
matrix.
2003-08-15 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-enums.[ch]: extended GimpTabStyle enum so we
are able to distinguish icon and preview tabs.
* app/widgets/gimpdockable.[ch]: renamed GimpDockableGetIconFunc
to GimpDockableGetPreviewFunc. Always create stock icons for
"icon" tab styles and use the get_preview_func only for "preview"
tab styles.
* app/gui/dialogs-constructors.c: changed accordingly.
* app/gui/dialogs-menu.c: Added "Current Status" options to the
"Tab Style" menu and grey them out if the dockable has no
get_preview_func.
* app/composite/make-installer.py: generate smaller tables and
less code. Now takes real command line options:
options:
--version show program's version number and exit
-h, --help show this help message and exit
-f FILE, --file=FILE the input object file
-t, --test generate regression testing code
-r REQUIRES, --requires=REQUIRES cpp #if conditionals
See Makefile.am for how I use these options to generate the code.
* app/composite/gimp-composite-altivec-{installer,test}.c:
* app/composite/gimp-composite-generic-{installer,test}.c:
* app/composite/gimp-composite-mmx-{installer,test}.c
* app/composite/gimp-composite-sse-{installer,test}.c:
* app/composite/gimp-composite-vis-{installer,test}.c: regenerated
with smaller tables and less ode.
2003-08-14 Tor Lillqvist <tml@iki.fi>
* app/base/base.c (base_init): If a development version (odd
GIMP_MINOR_VERSION), print a warning that debug messages may
appear. Only print the CPU acceleration messages on
development versions. On Win32, tell people not to close the
console window. (#119786)
2003-08-14 Michael Natterer <mitch@gimp.org>
* app/tools/gimpvectortool.c (gimp_vector_tool_button_press): call
gimp_image_update() after calling gimp_image_add_vectors() so the
menus get updated correctly. Fixes bug #119412.
2003-08-14 Michael Natterer <mitch@gimp.org>
* app/gui/image-menu.c (image_menu_entries): applied a patch from
Alan Horkan <horkana@tcd.ie> which adds an "Undo History..." menu
entry below the "Undo" and "Redo" ones. Fixes bug #119662.
2003-08-14 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintcore.c (gimp_paint_core_subsample_mask): use
g_new0() instead of g_malloc() followed by memset(). Some coding
style cleanups.
* composite/ modularisation of the automatic compositing function
"wiring" to construct the table of compositing functions at
run-time instead of compile time.
The environment variable GIMP_COMPOSITE is a hexadecimal number
representing a bit-field used to set/reset options in the
gimp-composite code.
* gimp-composite-altivec.[ch]: added
* gimp-composite-altivec-installer.[ch]: added
* gimp-composite-vis.[ch]: added
* gimp-composite-vis-installer.[ch]: added
* gimp-composite-mmx-installer.[ch]: added
* gimp-composite-sse-installer.[ch]: added
* gimp-composite-altivec-test.[ch]: added
* gimp-composite-vis-test.[ch]: added
* gimp-composite-mmx-test.[ch]: added
* gimp-composite-sse-test.[ch]: added
* make-installer.py: Added meta programme for generating code to
1) construct a table of compositing functions indexed by
operation, and the pixel formats of the sources and destination,
and 2) generating code for regression testing of these compositing
functions against the same functions in gimp-composite-generic.c
* gimp-composite-mmx.c (xxxgimp_composite_overlay_rgba8_rgba8_rgba8_mmx):
removing from the current set of optimisations because it appears
to be broken.
* Makefile.am: modified regression testing targets to now build
gimp-composite-*-test where * is any of generic, mmx, sse,
altivec, and vis.
* gimp-composite.c: moved in initialisation code
gimp_composite_init() from gimp-composite-dispatch.c
* gimp-composite.c: removed gimp_composite_unsupported().
* gimp-composite.c: use cpu_accel() to determine at run-time which
set of optimisations are to be used.
* gimp-composite.c: conditionally compile code for ARCH_X86.
* make-gimp-composite-dispatch.c: retired. See make-installer.py
* gimp-composite-mmx.c (op_overlay): namespace cleanup, op_overlay()
and all of the constant values are now static
* gimp-composite-mmx.c, gimp-composite-sse.c: fixed bug with the
alpha mask being the address of the alpha mask, not the mask
itself.
* app/paint-funcs/paint-funcs.c: Check gimp_composite_options.use
to see if we should use the new code or the old code.
* app/widgets/gimpbrushfactoryview.c: Reduced the range of the
spacing scale widget for convenience. Extreme values may still be
entered in the spin box.
2003-08-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppreview.c (gimp_preview_button_press_event):
return early if the widget is not realized to enable destroying
the widget from an external "button_press_event" handler which
returns FALSE (as done in GimpContainerGridView).
Fixes bug #119413.
Some paranoia fixes for similar (although unseen) problems:
* app/widgets/gimppreview.[ch]: remember if we own a grab and
remove it in GtkWidget::unmap().
* app/widgets/gimppreview-popup.c: destroy the popup when the
parent widget gets unmapped.
2003-08-13 Michael Natterer <mitch@gimp.org>
* app/gui/gui.c (gui_restore): pop up a warning dialog if the
GTK+ version is < 2.2.2. Forgot to commit this at GimpCon...
2003-08-12 Henrik Brix Andersen <brix@gimp.org>
* app/gui/image-menu.c (image_menu_update): have the grid/guide
menu entries reflect the presence of grid/guides in the image (as
suggested by jimmac)
* app/display/gimpdisplayshell.c (gimp_display_shell_snap_coords):
snap to grid/guides even if the grid/guides are hidden (as
suggested by jimmac)