2007-03-16 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginprocframe.c
(gimp_plug_in_proc_frame_get_return_vals): don't just g_free() the
GValueArray after we memcpy()-stole its values because this both
leaks the contained array of GValues and crashes with glib trunk
where GValueArray is slice-allocated. Instead, free the array of
GValues manually, set it to NULL and use g_value_array_free().
svn path=/trunk/; revision=22134
2007-03-16 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/script-fu.c: remove N_() from calls to
gimp_plugin_menu_register().
svn path=/trunk/; revision=22133
2007-03-16 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/scripts/spyrogimp.scm: update the progress
to avoid looking like the script hangs. Fixes bug #356677.
* plug-ins/script-fu/script-fu-interface.c
(script_fu_interface_report_cc): if the command starts with
"gimp-progress-", the script is obviously showing a progress bar
for itself, so clear the text instead of showing an endless number
of "gimp-progress-update" messages. Also fixed manual main loop
iteration.
svn path=/trunk/; revision=22132
2007-03-16 Michael Natterer <mitch@gimp.org>
Fix stuck progress bars (bug #393832):
* app/plug-in/gimpplugin-progress.[ch] (gimp_plug_in_progress_end):
added PlugInProcFrame parameter instead of blindly using the topmost
in the procedure stack...
* app/plug-in/gimppluginprocframe.c
(gimp_plug_in_proc_frame_dispose): ...because we call it from here,
when the proc_frame is already removed from the procedure stack.
Unrelated:
* plug-ins/script-fu/scripts/difference-clouds.scm: use
RUN-INTERACTVE instead of 0, added (gimp-displays-flush)
* plug-ins/common/snoise.c (solid_noide): update the progress to
1.0 after rendering.
svn path=/trunk/; revision=22131
2007-03-15 Michael Natterer <mitch@gimp.org>
* app/tools/gimpaligntool.c
* app/tools/gimpcolorpickertool.c
* app/tools/gimppainttool.c
* app/tools/gimpvectortool.c: remove gimp_tool_pop_status() from
control() implementations because GimpTool does this generically now.
* app/tools/gimpblendtool.c
* app/tools/gimpselectiontool.c: remove entire control()
implementations because they were doing nothing else.
svn path=/trunk/; revision=22128
2007-03-15 Michael Natterer <mitch@gimp.org>
* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui): "adj"
is a GtkObject not a GtkWidget, also moved it to its local scope.
svn path=/trunk/; revision=22127
2007-03-15 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_halt): check
if tool->display is there before dereferencing it (bug #418504).
(gimp_rectangle_tool_start): add "display" parameter and set
tool->display here.
(gimp_rectangle_tool_button_press): pass the display to start()
and don't set tool->display here.
svn path=/trunk/; revision=22125
2007-03-14 Michael Natterer <mitch@gimp.org>
Make the status display stuff local to GimpTool:
* app/tools/tool_manager.c (tool_manager_control_active): don't
call gimp_tool_clear_status().
* app/tools/gimptool.[ch]: make gimp_tool_clear_status() a
private function. Move call to gimp_tool_clear_status() from
real_control() to control(). Check the status_displays too in
gimp_tool_real_has_display() and gimp_tool_has_image() so the
normal mechanism of control(HALT)ing (and thus popping all
status messages) the tool on display close works.
svn path=/trunk/; revision=22124
2007-03-14 Michael Natterer <mitch@gimp.org>
Fix stuck statusbar messages when changing tools (bug #398913):
* app/tools/gimptool.[ch]: keep a list of status_displays around.
Update the list in all status push, replace and pop functions.
Added gimp_tool_clear_status() which removes the status messages
from all displays in the list. Call the function from
gimp_tool_real_control(HALT).
* app/tools/tool_manager.c (tool_manager_control_active): if we
can't call gimp_tool_control() because we have no display to pass,
still call gimp_tool_clear_status() so the messages go away from
displays the tool was only hovering.
svn path=/trunk/; revision=22123
2007-03-14 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpplugin.c (gimp_plug_in_new): require either
"procedure" or "prog" being non-NULL, not both of them at the same
time. Get the executable name from the procedure if the procedure
was passed.
* app/plug-in/gimppluginmanager-call.c
(gimp_plug_in_manager_call_run): pass a NULL prog since we already
pass the procedure.
svn path=/trunk/; revision=22122
2007-03-14 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-render.c: sprinkled some const
qualifiers and removed obscure shift code in favor of letting the
compiler do this optimization.
svn path=/trunk/; revision=22121
2007-03-14 Michael Natterer <mitch@gimp.org>
* app/core/gimpbrush.c
* app/core/gimpbrushgenerated.c: some minor fixes and stylistic
paranoia i overlooked in last night's late review.
svn path=/trunk/; revision=22119
2007-03-14 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.[ch]: cache the display scale
factors in the GimpDisplayShell struct and recalculate it in
gimp_display_shell_scale_factor_changed().
* app/display/gimpdisplayshell-scale.c
(gimp_display_shell_scale_set_dot_for_dot)
* app/display/gimpdisplayshell-handlers.c
(gimp_display_shell_resolution_changed_handler)
(gimp_display_shell_monitor_res_notify_handler): update the scale
factors by calling gimp_display_shell_scale_factor_changed().
* app/display/gimpdisplayshell-transform.c
* app/display/gimpnavigationeditor.c: code cleanup.
svn path=/trunk/; revision=22118
2007-03-14 Sven Neumann <sven@gimp.org>
* app/base/brush-scale.c: minor cleanups, moved calculations out
of the MIN() macro, avoid unneeded floating-point calculations.
svn path=/trunk/; revision=22114
2007-03-14 Martin Nordholts <martinn@svn.gnome.org>
Made brushes upscalable by using scale_region. Downscaling still
uses functions in app/base/brush-scale.c (because of better
performance). Parametric brushes of course recalculates masks
instead of using bitmap scaling. Fixes bug #65030.
* app/core/gimpbrush.[ch]: Added a private scale_buf method which
uses scale_region (with GIMP_INTERPOLATION_LINEAR) to scale its
masks and pixmaps. Also added public virtual method scale_size to
GimpBrush (overridden by GimpBrushGenerated) which calculates the
buffer sizes for a given brush scaled with a given scale.
* app/core/gimpbrushgenerated.c: Implemented the new scale_size
method inherited from GimpBrush, and modified
gimp_brush_generated_calc to use this helper function.
* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui): Made
the brush Scale-slider logarithmic.
* app/paint/gimppaintoptions.c (gimp_paint_options_class_init):
Changed Scale scale to [0.0, 10.0].
* app/paint/gimpbrushcore.c:
(gimp_brush_core_calc_brush_size): Refactored 'get brush size' code
to where it belongs, in GimpBrush-classes, and allowed scales
larger than 1.0.
svn path=/trunk/; revision=22113
2007-03-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: added new ugly function
gimp_dialog_factory_hide_dialog() which does gtk_widget_hide() and
sets the stored visibility state to GIMP_DIALOG_VISIBILITY_INVISIBLE
in order to avoid re-showing dialogs that were already insivible due
to TAB-toggling when we gtk_widget_hided them.
* app/tools/gimptransformtool.c
* app/tools/gimpimagemaptool.c: use the new function instead of
gtk_widget_hide() to hide tool dialogs. Fixes bug #414006.
svn path=/trunk/; revision=22111
2007-03-13 Raphael Quinet <raphael@gimp.org>
* plug-ins/script-fu/script-fu-console.c: Fix for bug #417467
based on modified patch by Eric Lamarque and suggested by Mitch.
Allows build without warnings and correct localization for Solaris
and other platforms.
svn path=/trunk/; revision=22109
2007-03-12 Michael Natterer <mitch@gimp.org>
* app/tools/gimpmagnifytool.[ch]: lots of fixes and changes:
- Request click events and use them instead of looking at the
distance the mouse travelled ourselves.
- Also zoom when the user draws a very thin rectangle or just a
line, there is no reason to treat that as click.
- Changed all calculations and stored values to double so the tool
continues to work smoothly at high zoom levels.
- Fix scale calculation when zooming out (was totally b0rk).
- Changed offset calculation when zooming out so that the current
viewport ends up within the drawn rectangle (which is the
opposite of what zooming in does).
svn path=/trunk/; revision=22105
2007-03-12 Michael Natterer <mitch@gimp.org>
* app/core/gimpbrush.[ch]
* app/core/gimpbrushgenerated.c
* app/tools/gimppaintoptions-gui.c
* app/base/brush-scale.[ch]
* app/base/temp-buf.[ch]
* app/paint/gimppaintoptions.c
* app/paint/gimpbrushcore.c: revert last commit. The patch needs
more review and it's easier to start from quare one than have
patches on top of patches.
svn path=/trunk/; revision=22101
2007-03-11 Michael Schumacher <schumaml@cvs.gnome.org>
Made brushes scalable (both up and down) by using existing
scaling routines, and also refactored some brush-code. Patch by
Martin Nordholts. Fixes bug #65030.
* app/paint/gimpbrushcore.c:
(gimp_brush_core_calc_brush_length_scale) Refactored 'get brush
size' code to where it belongs, in GimpBrush-classes, and renamed
gimp_brush_core_calc_brush_size to
gimp_brush_core_calc_brush_length_scale.
* app/paint/gimppaintoptions.c (gimp_paint_options_class_init):
Changed Scale scale to [0.0, 100.0].
* app/base/temp-buf.[ch] (mask_buf_new): Change signature to also
take a bpp parameter.
* app/base/brush-scale.[ch]: Changed brush_scale_(mask|pixmap) to
the new brush_scale_buf, which uses existing scaling routines
(scale_region) instead of dedicated down-scaling only routines.
* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui): Made
the brush Scale-slider logarithmic.
* app/core/gimpbrushgenerated.c: Implemented the new
get_scaled_size method inherited from GimpBrush, and modified
gimp_brush_generated_calc to use this helper function.
* app/core/gimpbrush.[ch]: Added public virtual method
get_scaled_size to GimpBrush, overridden by GimpBrushGenerated,
which calculates the buffer sizes for a given brush scaled with a
given scale. Also changed calls to brush_scale_(mask|pixmap) to
the new brush_scale_buf.
svn path=/trunk/; revision=22099
2007-03-10 Sven Neumann <sven@gimp.org>
* app/display/gimpstatusbar.c (gimp_statusbar_update): while the
statusbar is being used as a progress bar, only show progress
messages.
svn path=/trunk/; revision=22096
2007-03-10 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginprocedure.[ch]: cache the result of
gimp_plug_in_procedure_get_label() and made the return value
const.
* app/actions/plug-in-actions.c
* app/plug-in/gimpplugin-cleanup.c
* app/plug-in/gimppluginmanager.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpfileprocview.c
* app/widgets/gimpimagepropview.c: changed accordingly.
* app/file/file-open.c
* app/file/file-save.c: include the plug-in name (or actually
the
label) in the error messages.
svn path=/trunk/; revision=22095
2007-03-10 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: don't include libgimpmath/gimpmathtypes.h
* app/base/base-types.h: include it here. Also include
libgimpcolor/gimpcolortypes.h
svn path=/trunk/; revision=22094
2007-03-10 Michael Natterer <mitch@gimp.org>
* app/tools/tools-enums.[ch] (enum GimpButtonReleaseType): added
value GIMP_BUTTON_RELEASE_NO_MOTION.
* app/tools/gimptool.[ch]: when click events are requested and the
click was too long for a "click" event, send a NO_MOTION event if
the pointer didn't move at all.
* app/tools/gimpbucketfilltool.c: treat NO_MOTION as tool
confirmation too.
* app/tools/gimpfreeselecttool.c: request click events and treat
both CLICK and NO_MOTION as tool confirmation.
* app/tools/gimprectangletool.c: ignore NO_MOTION.
svn path=/trunk/; revision=22091
2007-03-09 Kevin Cozens <kcozens@cvs.gnome.org>
* plug-ins/script-fu/scripts/script-fu-util-setpt.scm: Removed
erroneous comment block.
* plug-ins/script-fu/scripts/script-fu-set-cmap.scm: Use only
American (USA) spelling in translatable strings.
svn path=/trunk/; revision=22085
2007-03-09 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: include "libgimpmath/gimpmathtypes.h"
instead of "libgimpmath/gimpmath.h".
* app/core/gimpbrush.h
* app/paint/gimppaintcore.h
* app/paint/gimpperspectiveclone.h
* app/text/gimptext.h
* app/tools/gimptransformtool.h: include gimpvector.h and
gimpmatrix.h explicitely where they are needed in public structs.
* app/*/*.c
* tools/pdbgen/pdb/paths.pdb: include "libgimpmath/gimpmath.h"
where needed.
* app/pdb/paths_cmds.c: regenerated.
svn path=/trunk/; revision=22084