gimp/ChangeLog

1987 lines
64 KiB
Plaintext
Raw Normal View History

2008-10-31 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationpointlayermode.c
(gimp_operation_point_layer_mode_process): The GEGL API actually
allows us to handle the Dissolve layer mode as a point op. The
GEGL implementation of Dissolve uses a faster implementation for
deterministic behavior than the legacy Dissolve implementation.
The end result should be identical (although not on the
pixel-level).
Completely works the same:
o Dissolve
2008-10-31 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c (gimp_text_tool_key_press): bail out
instead of crashing if the tool has no display.
(gimp_text_tool_draw)
(gimp_text_tool_draw_preedit)
(gimp_text_tool_draw_selection)
(gimp_text_tool_xy_to_offset): need to adjust all drawing and
event coordinates by a possible negative offset between logical
rectangle and ink rectangle (if the ink rectangle is larger than
the logical one).
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): continue normally if
tool_manager_key_press_active() returns FALSE.
2008-10-30 Sven Neumann <sven@gimp.org>
* app/text/gimp-fonts.c
* app/text/gimpfont-utils.c: removed unused includes.
2008-10-30 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c: remove lots of unused variables,
apparently my builds were without proper warnings for some time.
Some formatting cleanup and code reordering.
* app/actions/text-tool-actions.c
* menus/text-tool-menu.xml: rename "text-tool-input-methods"
to "text-tool-input-methods-menu".
2008-10-30 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayout.c: fixed order of includes.
* app/text/gimptext-compat.c: ported to PangoCairo like the rest
of the text rendering code.
2008-10-30 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayout-render.c: removed an obsolete and
misleading comment.
2008-10-29 Sven Neumann <sven@gimp.org>
* libgimp/gimp.def
* libgimpbase/gimpbase.def
* libgimpcolor/gimpcolor.def: updated with new symbols.
2008-10-29 Martin Nordholts <martinn@svn.gnome.org>
Bug 558215 unit and zoom entries in Statusbar not visible
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_size_allocate): Don't try to be clever,
call gimp_display_shell_scaled() whenever the canvas size changes
so a newly created display shell gets updated properly.
2008-10-29 Sven Neumann <sven@gimp.org>
Bug 558451 Cannot build GIMP using Sun CC on Solaris 2.8
* app/pdb/gimp-pdb-compat.c
* app/gegl/gimpoperationtilesink.c
* app/gegl/gimpoperationtilesource.c
* app/tools/gimpgegltool.c: applied patches from Eric Lamarque
fixing the build using Sun CC on Solaris.
2008-10-29 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationpointlayermode.c
(gimp_operation_point_layer_mode_process): Implemented the layer
modes Hue, Saturation, Color and Value.
Works the same for 100% opaque layers:
o Hue
o Saturation
o Color
o Value
* libgimpcolor/gimphsl.[ch]: Added gimp_hsl_set().
2008-10-29 Michael Natterer <mitch@gimp.org>
* plug-ins/common/file-pdf.c: a comment was still saying
"poppler.c".
2008-10-29 Michael Natterer <mitch@gimp.org>
* app/core/gimpselection.[ch]: change member "gboolean stroking"
into "gint stroking_count". Add push/pop API to increase/decrease
the counter. Pretend the selection is empty if the counter is > 0.
Enables correctly rendering vector layers even if there is a
selection.
2008-10-29 Sven Neumann <sven@gimp.org>
Bug 558420 projection incorrect with alpha-less layers
* app/core/gimpprojection-construct.c (gimp_projection_initialize):
need to initialize the projection if the covering layer is not
opaque.
2008-10-29 Sven Neumann <sven@gimp.org>
Bug 557950 Scaling in Gimp 2.6 is much slower than in Gimp 2.4
* app/paint-funcs/scale-region.c: don't do multi-pass scaling
when we are scaling up.
2008-10-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpstrokeeditor.c: move the "Antialias" toggle from
here...
* app/widgets/gimpfilleditor.c: ...to here because it makes sense
for both filling and stroking.
2008-10-29 Sven Neumann <sven@gimp.org>
* plug-ins/script-fu/scripts/Makefile.am
* plug-ins/script-fu/scripts/gimp-online.scm: renamed from
web-browser.scm.
2008-10-29 Martin Nordholts <martinn@svn.gnome.org>
* configure.in: Properly save CFLAGS temporarily.
2008-10-28 Michael Natterer <mitch@gimp.org>
* app/tools/gimpmagnifytool.c (gimp_magnify_tool_button_release):
turn nested if()s into a switch(release_type).
2008-10-28 Martin Nordholts <martinn@svn.gnome.org>
Bug 556603 Zoom region always zooms in center of image
* app/tools/gimpmagnifytool.c (gimp_magnify_tool_button_release):
When zooming with a click, use gimp_display_shell_scale() instead
of local zoom logic.
2008-10-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added "gboolean below" to
gimp_enum_radio_frame_add() and gimp_enum_radio_box_add() and
place the widget right of the radio button unless "below" is TRUE.
* app/dialogs/convert-dialog.c
* app/dialogs/layer-add-mask-dialog.c
* app/tools/gimpbucketfilloptions.c
* app/tools/gimpclonetool.c
* app/tools/gimpperspectiveclonetool.c: pass TRUE so everything
stays as-is.
* app/widgets/gimpfilleditor.c: pass FALSE if we are editing the
context's "foreground" and "pattern" properties.
2008-10-28 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationpointlayermode.c
(gimp_operation_point_layer_mode_process): Put the existing blend
formulas in expanded switch cases again. We need to keep the more
complicated layer modes like Hue, Value and Saturation in expanded
switch cases anyway.
2008-10-27 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c: some minor cleanups.
(gimp_text_tool_draw): draw a cursor of two pixels width which is
between glyphs so it is visible both at the left and the right
border or the rectangle. Also make it look a little more
cursor-like.
2008-10-27 Michael Natterer <mitch@gimp.org>
* app/actions/text-tool-actions.c
* app/actions/text-tool-commands.[ch]
* menus/text-tool-menu.xml: rename action "path-from-text" to
"text-to-path".
2008-10-27 Michael Natterer <mitch@gimp.org>
* menus/text-tool-menu.xml
* app/actions/text-tool-actions.c
* app/actions/text-tool-commands.[ch]: add "Text along Path" to the
text tool context menu.
* app/tools/gimptextoptions.[ch]: remove the text along path
button here.
* app/tools/gimptexttool.c: changed accordingly.
* app/tools/gimptexttool.[ch]: move public functions together,
move all virtual function implementations together and put them in
order, made the text along path function public, factor out
gimp_text_tool_xy_to_offset() instead of duplicaing this code
three times, remove gimp_rectangle_tool_frame_item() because it
doesn't belong here.
* app/tools/gimprectangletool.[ch]: add
gimp_rectangle_tool_frame_item() here. Enselic, please process ;)
2008-10-27 Sven Neumann <sven@gimp.org>
* app/actions/text-tool-actions.c: changed menu labels.
2008-10-27 Sven Neumann <sven@gimp.org>
* app/actions/text-editor-commands.c (text_editor_load_response):
hide the file dialog instead of destroying it.
2008-10-27 Sven Neumann <sven@gimp.org>
* app/tools/gimptexttool.c: removed unused includes.
* app/actions/text-tool-commands.c (text_tool_load_cmd_callback):
fixed file dialog for opening text files.
2008-10-27 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c (gimp_text_tool_key_press): take the
layout line's x coordinate into account so the stuff works for
right-aligned or centered text.
2008-10-27 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c (gimp_text_tool_key_press): argh, need
to speak in byte offsets not character offsets. Do so and avoid
getting the buffer's text on each keystroke just to do the
char/byte conversion. Will use the same method for all the other
places which do similar things.
(gimp_text_tool_connect): minor cleanup.
2008-10-27 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayer.c (gimp_text_layer_render_layout):
iterate over the tiles instead of rendering row-by-row.
2008-10-27 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayout.c (gimp_text_get_pango_context): use the
Y resolution when creating the fontmap.
2008-10-27 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayout-render.c (gimp_text_layout_render_trafo):
minor cleanup.
2008-10-27 Sven Neumann <sven@gimp.org>
* app/text/gimptext-bitmap.c: cleanup, removed unused includes.
2008-10-27 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpbaseenums.[ch]: added new enum GimpTextHintStyle.
* libgimp/gimpenums.c.tail
* tools/pdbgen/enums.pl: regenerated.
* app/text/gimptext.[ch]: added new property "hint-style". Removed
"autohint" property and mapped the boolean property "hinting" to
the new enum property "hint-style".
* app/text/gimptextlayout-render.c (gimp_text_layout_render_flags):
use "hint-style".
* app/tools/gimptextoptions.[ch]: changed tool options accordingly.
* tools/pdbgen/pdb/text_layer.pdb: deprecated the "hinting" API
and introduced getters and setters for "hint-style".
* app/pdb/text-layer-cmds.c
* app/pdb/internal-procs.c
* libgimp/gimptextlayer_pdb.[ch]: regenerated.
2008-10-27 Michael Natterer <mitch@gimp.org>
* app/tools/gimpdrawtool.[ch]: add gimp_draw_tool_set_clip_rect()
which transforms the passed in GdkRectangle before setting it
on the canvas.
* app/tools/gimptexttool.c (gimp_text_tool_draw): use it instead
of gimp_canvas_set_clip_rect().
2008-10-27 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.h: add integer x_pos member to remember
the x cursor position when moving up and down across shorter
lines.
* app/tools/gimptexttool.c (gimp_text_tool_key_press): implement
moving the cursor up and down. The x_pos probably needs to be
reset in a few more places but it seems to work pretty nicely
already.
2008-10-26 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c: handle Tab, some more cleanup.
2008-10-26 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayout-render.c (gimp_text_layout_render_flags):
formatting.
2008-10-26 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c: more cleanup, mostly formatting.
2008-10-26 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationpointlayermode.c: Clamp Grain Extract,
Grain Merge and Divide.
2008-10-26 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c: some formatting cleanup.
* app/tools/gimprectangletool.c: add one space.
* app/actions/text-tool-actions.c: look at GDK_SELECTION_CLIPBOARD,
not PRIMARY, to set the sensitivity of "Paste".
2008-10-26 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.[ch]: some general formatting cleanup.
(gimp_text_tool_key_press): implement ctrl-moving the cursor by
words, handle Delete.
(gimp_text_tool_delete_text): add boolean "backspace" parameter
and delete forward when it's FALSE.
* app/actions/text-tool-commands.c: pass an arbitrary TRUE to
gimp_text_tool_delete_text() (it's not used because when called
from here, there is always a selection).
2008-10-26 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationpointlayermode.c: Remove braces in
formulas, makes everything look cleaner.
2008-10-26 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationpointlayermode.c: Clamp Addition and
Subtract so that we acheieve consistent blending results. Also,
our Addition is fine, it is the formula for 'plus' in the SVG 1.2
draft that is wrong as far as I can see.
2008-10-26 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationpointlayermode.c: Continue the quest of
overviewable and readable blend formulas. The macro now expands to
entire case-statements.
2008-10-26 Michael Natterer <mitch@gimp.org>
Merge on-canvas GSoC project:
* configure.in: check for pangocairo.
* app/Makefile.am
* app/text/Makefile.am: add its CFLAGS and LIBS.
* app/text/gimptext-bitmap.[ch]
* app/text/gimptext-private.h
* app/text/gimptext-vectors.[ch]
* app/text/gimptextlayer.c
* app/text/gimptextlayout-render.c
* app/text/gimptextlayout.c: port to pangocairo.
* menus/Makefile.am
* menus/text-tool-menu.xml
* app/menus/menus.c
* app/actions/Makefile.am
* app/actions/actions.c
* app/actions/text-tool-actions.[ch]
* app/actions/text-tool-commands.[ch]: add a context menu for the
text tool similar to GtkEntry's context menu.
* app/tools/gimprectangletool.[ch]: add "narrow-mode" property.
* app/tools/gimptextoptions.[ch]
* app/widgets/gimptexteditor.[ch]: take a text buffer for the
standalone text editor window instead of creating one internally.
* app/tools/gimptexttool.[ch]: all the new wonderful on-canvas
text editing logic. Wheee!
2008-10-26 Sven Neumann <sven@gimp.org>
* app/tools/gimptool.c (gimp_tool_get_popup)
* app/tools/tool_manager.c (tool_manager_get_popup_active): added
missing return value.
2008-10-26 Michael Natterer <mitch@gimp.org>
Add some infrastructure for the on-canvas text editing GSoC
project:
* app/tools/gimptoolcontrol.[ch]: add boolean wants_all_key_events
member and API to set and get it.
* app/tools/gimptool.[ch]: add GimpTool::get_popup() which returns
the tool's context menu if it has one, or NULL otherwise.
* app/tools/tool_manager.[ch]: add tool_manager_get_popup_active()
wrapper.
* app/display/gimpdisplayshell-callbacks.c: check if the tool has
a popup menu and show it instead of the usual right-click menu.
Also call the tool's key_press() unconditionally if it wants all
key events, but this code needs more thinking.
2008-10-26 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationpointlayermode.c: Increase readability by
introducing short aliases.
2008-10-26 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationpointlayermode.c: For blend modes with
conditions, fix so that the conditions are per color
channel. Acheived by introducing a nice little preprocessor macro.
2008-10-26 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationpointlayermode.c: Enable the [0..1]
clamping of the output for Dodge and Burn. Without the clamping
one gets inconsistent results when blending together identical
layers but with different opacities. Maybe we should make the
clamping configurable and introduce a HDR compositing mode or
something?
2008-10-26 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationpointlayermode.c: Implemented Grain
Extract and Grain Merge. Also corrected the formula for Divide.
Works the same for 100% opaque layers:
o Grain Extract
o Grain Merge
2008-10-25 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationpointlayermode.c: Implement a bunch of
layer modes. Use the exact SVG 1.2 formula for layer modes that
have a counterpart in SVG 1.2. Don't clamp the result to [0..1]
for Dodge and Burn though as we don't need to. Maybe we *should*
clamp from a compositing point of view, I'm not sure. Also
reformat the code a bit for readability.
Keep in mind that we now treat the opacity of all layers the same
indepentant of the layer mode. That is why most of the new
implementations doesn't work the same as the legacy ones when
transparency is involved, only when the layers are completely
opaque. Another important property for all layer modes implemented
below is that compositing onto complete transparency gives the
same result as if the layer would have been in Normal blending
mode.
The status of the new layer mode implementations compared to the
legacy implementations is as follows:
Completely works the same:
o Behind
Works the same for 100% opaque layers:
o Multiply
o Screen
o Difference
o Darken
o Lighten
o Dodge
o Burn
o Hard Light
o Subtract
o Divide
Works different but similar:
o Overlay
Work in progress:
o Soft Light
2008-10-25 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationpointlayermode.c: Completed the rename
with gimp:layer-mode -> gimp:point-layer-mode and also did some
formating.
* app/core/gimplayer.c: Changed accordingly.
2008-10-25 Martin Nordholts <martinn@svn.gnome.org>
* plug-ins/file-psd/psd-save.c
* plug-ins/file-psd/psd-util.c: Add support for reading/writing
PSDs with the Linear Dodge layer mode which is the same as GIMPs
Addition layer mode.
2008-10-25 Michael Natterer <mitch@gimp.org>
Bug 557870 "Qmask" message popping up here and there
* app/display/gimpdisplayshell-title.c
(gimp_display_shell_format_title): use
gimp_viewable_get_description() instead of gimp_object_get_name()
for displaying the active drawable's name so the quick mask and
the floating selection have the same names as in the
layers/channels dialogs.
2008-10-25 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationlayermode.[ch]: Rename to
* app/gegl/gimpoperationpointlayermode.[ch]: so that we can later
create a common GimpOperationLayerMode class/interface for
non-point layer modes like GimpOperationDissolveLayerMode.
* app/gegl/Makefile.am
* app/gegl/gimp-gegl.c
* app/gegl/gegl-types.h: Adjust accordingly.
2008-10-25 Martin Nordholts <martinn@svn.gnome.org>
Instead of having one GEGL operation per layer mode, make
GimpOperationLayerMode instantiable and add a GimpLayerModeEffects
property to it that we check in ::process() to blend pixels
together.
* app/gegl/gimpoperationlayermode.[ch]: Do the change described
above. Currently only Normal and Addition are implemented. Normal
so that we don't need a special case for the gegl:normal op. Also,
the Dissolve layer mode is not a point op and needs to be
implemented elsewhere.
* app/gegl/gimpoperation*mode.c: Removed.
* app/gegl/gimp-gegl-utils.[ch]: Removed
gimp_layer_mode_to_gegl_operation().
* app/core/gimplayer.c
* app/gegl/Makefile.am
* app/gegl/gimp-gegl.c: Adapt.
2008-10-25 Michael Natterer <mitch@gimp.org>
Merge a modified and enhanced patch from the vector layer branch:
* app/core/gimpdrawable-stroke.[ch]: add new public API
gimp_drawable_fill_boundary() and gimp_drawable_fill_vectors().
Split the internal code up so that there are functions which turn
the BoundSegs and GimpVectors into a GimpScanConvert and changed
gimp_drawable_stroke_scan_convert() so it can either fill the
shape or stroke it.
2008-10-25 Michael Natterer <mitch@gimp.org>
More merging from SOC 2006's vector layer branch:
* app/core/gimpitem.[ch]: add "gboolean push_undo" to
GimpItem::stroke().
* app/core/gimpdrawable-stroke.[ch]
* app/paint/gimppaintcore-stroke.[ch]
* app/paint/gimppaintcore.[ch] (gimp_paint_core_finish): add
"push_undo" parameters here too.
* app/actions/select-commands.c
* app/actions/vectors-commands.c
* app/core/gimpchannel.c
* app/core/gimpselection.c
* app/dialogs/stroke-dialog.c
* app/tools/gimppainttool.c
* app/vectors/gimpvectors.c
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/paint_tools.pdb
* tools/pdbgen/pdb/paths.pdb: pass TRUE all over the place.
* app/pdb/edit-cmds.c
* app/pdb/paint-tools-cmds.c
* app/pdb/paths-cmds.c: regenerated.
2008-10-25 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationlayermode.c: Make layer modes work on
premultiplied data. This makes compositing 40% faster on my test
image with 10 interlaced Normal and Addition mode layers.
* app/gegl/gimpoperationadditionmode.c: Switch to the
premultiplied algorithm and remove the experimental ones. The new
Addition mode has two important differences over the legacy
Addition mode:
o Addition mode now really is commutative as the GIMP
documentation says (this isn't the case for the legacy Addition
mode implementation).
o Layers in Addition mode are just as opaque as Normal
layers. That is, their effect on the composite alpha channel is
the same. For discussion, refer to bug #387449.
2008-10-25 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintoptions.h: formatting.
2008-10-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.c (gimp_context_parent_notify): bail out if
the notification is not about one of our own properties
(but from a subclass).
2008-10-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpstrokeoptions.[ch]: add "gboolean use_context_color"
parameter to gimp_stroke_options_new() and set the passed context
as parent of the new options only if it's TRUE. Also fixed the
GimpConfig::duplicate() implementation to really duplicate the
object and not just return an object containing default values.
* app/core/gimpfilloptions.[ch]: add gimp_fill_options_new().
* app/actions/select-commands.c
* app/dialogs/stroke-dialog.c
* app/actions/vectors-commands.c
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/paths.pdb: pass TRUE to gimp_stroke_options_new().
* app/pdb/edit-cmds.c
* app/pdb/paths-cmds.c: regenerated.
2008-10-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpfilloptions.[ch]: add non-serializable properties
pattern-view-type and pattern-view-size which are used only by the
new UI below.
* app/widgets/gimpfilleditor.[ch]: added boolean edit-context
property. If TRUE, add widgets to edit the context's foreground and
pattern. Add "edit_context" parameter to gimp_fill_editor_new().
* app/widgets/gimpstrokeeditor.[ch]: add the same parameter here.
* app/widgets/gimpwidgets-utils.[ch]: add gimp_enum_radio_box_add()
which does the same as the existing gimp_enum_radio_frame_add().
* app/dialogs/stroke-dialog.c: pass FALSE for "edit_context"
because this dialog takes its foreground and pattern from the user
context and doesn't need it's own GUI for them.
2008-10-24 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpfilleditor.[ch]: new widget factored out of
GimpStrokeEditor.
* app/widgets/gimpstrokeeditor.[ch]: derive from GimpFillEditor
and remove UI for the properties of GimpFillOptions.
2008-10-24 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpstrokedesc.[ch]: remove this mis-engineered
abstraction...
* app/core/gimpstrokeoptions.[ch]: ...and add its properties and
API here.
* app/core/gimpitem.[ch]: GimpItem::stroke() take a
GimpStrokeOptions instead of a GimpStrokeDesc.
* app/core/gimpchannel.c
* app/core/gimpselection.c
* app/vectors/gimpvectors.c
* app/actions/select-commands.c
* app/actions/vectors-commands.c
* app/dialogs/stroke-dialog.c
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/paths.pdb: changed accordingly.
* app/pdb/edit-cmds.c
* app/pdb/paths-cmds.c: regenerated.
2008-10-24 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdialogfactory.c (gimp_dialog_factories_toggle):
to be on the safe side, always show hidden dialogs when the Tab
key is used. It should not be possible to get a Tab key-press
while all displays are iconified, but you never know ...
2008-10-24 Sven Neumann <sven@gimp.org>
Bug 556896 Dialogs don't get minimized with single image window
* app/widgets/gimpdialogfactory.[ch]: renamed the new methods to
gimp_dialog_factories_{show|hide}_with_display().
Remember if the dialogs were hidden using
gimp_dialog_factories_hide_with_display() or using
gimp_dialog_factories_toggle() and keep this into account when
making them visible again. This ensures that dialogs that were
hidden using the Tab key won't be shown when the image window is
uniconified.
* app/display/gimpdisplayshell.c
(gimp_display_shell_window_state_event): changed accordingly.
2008-10-24 Michael Natterer <mitch@gimp.org>
Another merge from the vector layer branch:
* app/core/gimpstrokedesc.c (gimp_stroke_desc_new): make sure
each stroke desc always has GimpPaintInfo.
2008-10-24 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationadditionmode.c: For alpha compositing
consistency, all layers should affect alpha in the same way
independent of layer mode. Replace the compositing algorithm with
a version without the flaws discovered so far in the previous
ones. Don't use it yet though as it requires premultiplied data.
2008-10-24 Sven Neumann <sven@gimp.org>
* app/paint-funcs/scale-region.c (scale): use the inverse of the
scale factor so that we can multiply instead of dividing in the
loops.
2008-10-23 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.[ch]: rename GimpStrokeStyle to GimpFillStyle.
* app/core/gimpfilloptions.[ch]
* app/core/gimpdrawable-stroke.c
(gimp_drawable_stroke_scan_convert): changed accordingly.
2008-10-23 Michael Natterer <mitch@gimp.org>
Merge a part of SOC 2006's vector layer branch:
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpfilloptions.[ch]: new GimpContext subclass factored
out of GimpStrokeOptions. Has "style" and "antialias" properties.
* app/core/gimpstrokeoptions.[ch]: derive from GimpFillOptions
and remove said properties.
* app/core/gimpdrawable-stroke.c
(gimp_drawable_stroke_scan_convert): changed accordingly.
2008-10-23 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginprocframe.c
(gimp_plug_in_proc_frame_dispose): set proc_frame->procedure to
NULL *after* calling gimp_plug_in_cleanup(). Fixes the crash on
windows in bug #557061 (but not the bug).
2008-10-23 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.h: don't #include
"libgimpwidgets/gimpwidgets.h".
* app/display/gimpdisplayshell-draw.c
* app/display/gimpdisplayshell-scale.c
* app/tools/gimpeditselectiontool.c: include it here.
2008-10-23 Sven Neumann <sven@gimp.org>
Bug 556896 Dialogs don't get minimized with single image window
* app/display/gimpdisplay-foreach.[ch]: added utility function to
get the number of visible (not withdrawn or iconified) displays.
* app/widgets/gimpdialogfactory.[ch]: added functions to hide and
show the dock windows. Changed gimp_dialog_factories_toggle() to
use the new functions.
* app/display/gimpdisplayshell.c
(gimp_display_shell_window_state_event): hide the docks if the
last display is iconified. Unhide them if a display is
uniconified. Probably needs more work ...
2008-10-23 Sven Neumann <sven@gimp.org>
* configure.in: removed check for Carbon and added a test for the
target OS being Darwin instead.
* app/config/gimpguiconfig.c: use PLATFORM_OSX instead of
HAVE_CARBON to determine the default "web-browser" command.
2008-10-22 Sven Neumann <sven@gimp.org>
* plug-ins/print/print-preview.c (print_preview_leave_notify_event):
check the crossing mode and don't unset the "inside" flag when the
event is caused by a pointer grab/ungrab.
2008-10-22 Martin Nordholts <martinn@svn.gnome.org>
Bug 556804 Zoom drop down doesn't update
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-callbacks.c: Fix calls to
gimp_display_shell_scaled() when Resize window on zoom is enabled.
2008-10-22 Sven Neumann <sven@gimp.org>
Bug 524615 Print not to scale
* plug-ins/print/print.c: set the unit for dimensions on the Cairo
context used for printing to GTK_UNIT_PIXELS.
* plug-ins/print/print-draw-page.c (print_draw_page): changed the
Cairo scale factors accordingly. Seems to fix printing on Windows.
2008-10-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpprogressbox.c: set box->progress to NULL in
destroy() and check for progress being NULL in various places so
we don't crash on API calls after the widget is destroyed.
2008-10-22 Sven Neumann <sven@gimp.org>
Bug 555246 gimp crashes when a file is opened while a preview is
generating
* app/widgets/gimpthumbbox.c: set box->progress to NULL in
destroy() and check for progress being NULL in various places so
we don't crash on API calls after the widget is destroyed.
2008-10-22 Sven Neumann <sven@gimp.org>
Bug 556741 Alpha layer automatically added (in psd format) but
not desired
* plug-ins/file-psd/psd-save.c: applied patch from Dennis Ranke
that flattens the projection for indexed images.
2008-10-22 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c
* app/plug-in/gimpplugin-progress.c: formatting.
2008-10-21 Michael Natterer <mitch@gimp.org>
Bug 555246 gimp crashes when a file is opened while a preview is
generating
* app/widgets/gimpfiledialog.c: set dialog->progress to NULL in
destroy() and check for progress being NULL in various places so
we don't crash on API calls after the widget is destroyed.
2008-10-21 Sven Neumann <sven@gimp.org>
* app/tools/gimpgegltool.c (gimp_param_spec_duplicate):
GEGL_IS_PARAM_SPEC_PATH() became GEGL_IS_PARAM_SPEC_FILE_PATH()
in GEGL 0.0.21.
2008-10-21 Sven Neumann <sven@gimp.org>
* app/tools/gimpgegltool.c (gimp_gegl_tool_dialog): for the
combo-box, strip known prefixes from the GEGL operation names and
use icons instead.
2008-10-21 Sven Neumann <sven@gimp.org>
* app/actions/file-commands.c (file_open_recent_cmd_callback): ref
the GimpDisplay and GimpImageFile objects while holding a
reference to them. Fixes a potential crash if GIMP is closed while
the image is being loaded.
2008-10-20 Martin Nordholts <martinn@svn.gnome.org>
* menus/image-menu.xml.in
* app/actions/debug-actions.c
* app/actions/debug-commands.c: Create dump and non-dump
groups. Also added a tooltip to the Benchmark Projection action
and removed report of number of layers.
2008-10-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimperrorconsole.c (gimp_error_console_init): don't
make the font size even smaller. We already use a smaller font in
the dock windows.
2008-10-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimpgradienteditor.c (view_events) (control_events):
use pointer coordinates from the passed event instead of calling
gtk_widget_get_pointer().
2008-10-20 Sven Neumann <sven@gimp.org>
* plug-ins/common/bump-map.c (dialog_preview_events): use pointer
coordinates from the passed event instead of calling
gtk_widget_get_pointer().
2008-10-20 Sven Neumann <sven@gimp.org>
* plug-ins/common/iwarp.c: set the OK and Reset button insensitive
until the user has defined a deformation to apply. Cleaned up
event handling.
2008-10-20 David Odin <dindinx@gimp.org>
* plug-ins/common/*.c: untabified
2008-10-19 Michael Natterer <mitch@gimp.org>
* app/actions/debug-actions.c
* app/actions/debug-commands.[ch]
* menus/image-menu.xml.in: rename
debug-dump-projection-benchmarking to debug-benchmark-projection.
2008-10-19 Sven Neumann <sven@gimp.org>
* plug-ins/metadata/xmp-parse.c: use GSlice to allocate structs.
2008-10-19 Sven Neumann <sven@gimp.org>
* plug-ins/metadata/xmp-encode.c
* plug-ins/metadata/xmp-parse.c
* plug-ins/metadata/metadata.c
* plug-ins/metadata/xmpdump.c: removal of unused includes and
other minor cleanups.
2008-10-19 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationadditionmode.c: Remove local channel
offset defines.
2008-10-19 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperation*mode.c: Refer to the input as 'in'
instead of 'src', the layer as 'layer' instead of 'aux', and the
result as 'out' instead of 'dest'.
2008-10-19 Martin Nordholts <martinn@svn.gnome.org>
* app/base/base-types.h: Rename the convenient channel offset
defines from CHANNEL_PIX to CHANNEL as this increases readability.
* app/base/color-balance.c
* app/base/colorize.c
* app/base/desaturate.c
* app/base/hue-saturation.c
* app/base/siox.c
* app/base/threshold.c
* app/core/gimp-edit.c
* app/core/gimp-transform-region.c
* app/core/gimpchannel.c
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpdrawable-convert.c
* app/core/gimpdrawable-stroke.c
* app/core/gimpdrawable.c
* app/core/gimpimage-convert.c
* app/core/gimpimage.c
* app/core/gimppalette-import.c
* app/core/gimppickable.c
* app/gegl/gimpoperation*mode.c
* app/gegl/gimpoperationcolorbalance.c
* app/gegl/gimpoperationcolorize.c
* app/gegl/gimpoperationhuesaturation.c
* app/gegl/gimpoperationlevels.c
* app/gegl/gimpoperationposterize.c
* app/gegl/gimpoperationthreshold.c
* app/paint-funcs/subsample-region.c
* app/paint/gimpclone.c
* app/paint/gimppaintbrush.c
* app/widgets/gimpviewrenderer.c: Adapt.
2008-10-19 Sven Neumann <sven@gimp.org>
Bug 493778 metadata plug-in crashes on some images
* plug-ins/metadata/xmp-encode.c (gen_property): introduced a
utility function to create XML elements. Deal gracefully with NULL
and empty values. Does not fix the crash, but fixes a warning that
has been reported in the same bug report.
2008-10-19 Martin Nordholts <martinn@svn.gnome.org>
* app/base/base-types.h: There is nothing magic or ugly about the
convenient defines, remove comments saying so.
2008-10-19 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationadditionmode.c: Refer to the input as 'in'
instead of 'src', the layer as 'layer' instead of 'aux', and the
result as 'out' instead of 'dest'. The old terminology clashes
with at least the SVG 1.2 compositing terminology [1] and there is
no reason for creating confusion.
[1] http://www.w3.org/TR/2004/WD-SVG12-20041027/rendering.html
2008-10-19 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationadditionmode.c: Use local variants of
channel offset defines, namely RED instead of RED_PIX etc, to
increase readability.
2008-10-19 Martin Nordholts <martinn@svn.gnome.org>
* app/actions/debug-commands.c
(debug_dump_projection_benchmarking_cmd_callback): In addition to
priting how long it takes to validate the projection, also print
the number of layers in the image.
2008-10-19 Martin Nordholts <martinn@svn.gnome.org>
* menus/image-menu.xml.in
* app/actions/debug-actions.c
* app/actions/debug-commands.[ch]: Added a 'Dump Projection
Benchmarking' item to the Debug Menu so that we can test how
different GEGL graph setups affect performance.
2008-10-19 Michael Natterer <mitch@gimp.org>
* configure.in: add -Wmissing-format-attribute to CFLAGS.
* plug-ins/imagemap/imap_main.c
* plug-ins/imagemap/imap_object.h
* plug-ins/imagemap/imap_source.c
* plug-ins/imagemap/imap_statusbar.h: add G_GNUC_PRINTF().
2008-10-18 Michael Natterer <mitch@gimp.org>
* configure.in: add -Wstrict-prototypes to CFLAGS.
2008-10-18 Sven Neumann <sven@gimp.org>
Applied patch from Alexia Death as attached to bug #471344:
* app/core/Makefile.am
* app/core/gimpcoords-interpolate.[ch]: new files with
interpolation code taken from ...
* app/vectors/gimpbezierstroke.c: ... here.
* app/Makefile.am (AM_LDFLAGS): make it link.
2008-10-17 Sven Neumann <sven@gimp.org>
* plug-ins/file-psd/psd-save.c (xfwrite): fixed handling of empty
strings. Don't quit silently, write an error message to stderr at
least.
2008-10-17 Sven Neumann <sven@gimp.org>
* app/core/gimp.[ch]: added signal Gimp::image-opened to announce
that an image has been loaded and a display was created for it.
* app/file/file-open.c (file_open_with_proc_and_display): call
gimp_image_opened() to emit the new signal.
* app/gui/dbus-service.xml
* app/gui/gimpdbusservice.[ch]: propagate the 'opened' signal to
listeners of the "org.gimp.GIMP.UI" DBus service.
* app/gui/gui-unique.c: formatting.
2008-10-16 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderervectors.c
(gimp_view_renderer_vectors_draw): just some cleanup.
2008-10-16 Sven Neumann <sven@gimp.org>
Bug 556248 Scaling gives 'jagged' edges
* app/paint-funcs/scale-region.c (scale): calculate pixel
contributions based on pixel centers, not on pixel origins.
2008-10-15 Jakub Steiner <jimmac@gimp.org>
* themes/Default/images/stock-gegl.svg:
* themes/Default/images/stock-gegl-22.svg:
* themes/Default/images/stock-gegl-22.png: remove white from the
shadow to render correctly on dark backgrounds.
2008-10-15 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb.pl: reindent the list of PDB types and remove
the unused and deprecated types "boundary" and "region". Also
remove "status" because it is unused (and unneeded and
unimplemented).
2008-10-15 Michael Natterer <mitch@gimp.org>
* app/tools/gimpgegltool.c (gimp_gegl_tool_operation_blacklisted):
add the gegl: prefix here too.
(gimp_gegl_tool_get_config): canonicalize the type name of the
created config class or we crash.
2008-10-14 Michael Natterer <mitch@gimp.org>
* configure.in
* app/sanity.c: require GEGL >= 0.0.21.
* app/core/gimpchannel.c
* app/core/gimpdrawable-brightness-contrast.c
* app/core/gimpdrawable-invert.c
* app/core/gimpimage.c
* app/core/gimpimagemap.c
* app/core/gimplayer.c
* app/gegl/gimp-gegl-utils.c
* app/tools/gimpbrightnesscontrasttool.c: GEGL operation names
are now "gegl:"-prefixed.
* app/core/gimpimagemap.c: set the node's "dont-cache" property
unconditionally.
2008-10-14 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdialogfactory.c (gimp_dialog_factory_add_dialog):
let new docks appear at the pointer position.
2008-10-14 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: add a default implementation of
GimpDrawable::get_node() which contains a layer mode node.
Implement GimpItem::visibility_changed() and turn the node into a
nop when the drawable is invisible. Added public function
gimp_drawable_get_mode_node() so subclasses can plug stuff
into its "aux" pad.
* app/core/gimplayer.[ch]
* app/core/gimpchannel.[ch]: changed accordingly (remove
duplicated member and code that is now in GimpDrawable).
2008-10-14 Michael Natterer <mitch@gimp.org>
* app/gegl/gimp-gegl-utils.[ch]: remove function
gimp_bpp_to_babl_format_linear() and add "gboolean linear"
parameter to gimp_bpp_to_babl_format().
* app/gegl/gimpoperationtilesink.c (process)
* app/gegl/gimpoperationtilesource.c (prepare): simply pass
self->linear to above changed function instead of selecting
between the two old functions.
2008-10-14 Sven Neumann <sven@gimp.org>
* app/signals.c (gimp_init_signal_handlers): comments.
2008-10-13 Sven Neumann <sven@gimp.org>
Bug 556182 Could you please explain a few strings [I18N]
* plug-ins/pygimp/plug-ins/py-slice.py: added translator comments.
2008-10-13 Sven Neumann <sven@gimp.org>
* app/Makefile.am
* app/signals.[ch]: new files with code split out of main.c.
* app/main.c: changed accordingly.
2008-10-13 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationadditionmode.c
(gimp_operation_addition_mode_process): Update with a new version
that is the best known so far (maybe it's even correct?).
2008-10-13 Sven Neumann <sven@gimp.org>
Bug 547967 Improve app/paint-funcs/ maintainability
Applied patch from Luidnel Maignan that splits the legacy code for
layer modes into new files.
* app/paint-funcs/Makefile.am
* app/paint-funcs/layer-modes.[ch]
* app/paint-funcs/paint-funcs-utils.h: new files with code taken
from ...
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.c: ... these two files.
2008-10-13 Michael Natterer <mitch@gimp.org>
* app/gegl/gimp-gegl-utils.c (gimp_layer_mode_to_gegl_operation):
remove warning because the missing layer modes are now
"implemented", ha ha.
2008-10-12 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationpointcomposer.[ch]: renamed this class...
* app/gegl/gimpoperationlayermode.[ch]: ...to this and add
an own process() virtual function so we are free to hack even
more badly in order to support legacy layer modes and proper
ones which do meaningful things to alpha. Simply redirect
GeglOperationPointComposer's compose() calls to our own vfunc
for now.
* app/gegl/gegl-types.h
* app/gegl/Makefile.am: changed accordingly.
* app/gegl/gimpoperation*mode.[ch]: changed parent class and
implemented process() method accordingly.
2008-10-12 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationadditionmode.c: commit some #if 0'ed
experimental code.
* app/actions/view-commands.c (view_use_gegl_cmd_callback): use
gimp_image_update(), simply exposing the shell doesn't reconstruct
the projection.
2008-10-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpprojection.h: add a "use_gegl" boolean member.
* app/core/gimpprojection-construct.c (gimp_projection_construct):
use the boolean instead of hardcoding FALSE.
* app/actions/view-actions.c
* app/actions/view-commands.[ch]: add a "Use GEGL" action and
callback which sets the boolean and exposes the display.
* menus/image-menu.xml.in: add it to the "View" menu.
2008-10-11 Martin Nordholts <martinn@svn.gnome.org>
* app/gegl/gimpoperationadditionmode.c
(gimp_operation_addition_mode_process): Implement this one.
2008-10-11 Michael Natterer <mitch@gimp.org>
* app/gegl/gimp-gegl-utils.c (gimp_layer_mode_to_gegl_operation):
it's gimp-screen-node not gimp-screen_mode.
2008-10-11 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationpointcomposer.[ch]: add an empty abstract
GeglOperationPointComposer subclass which can be used to hook in
common debug or test or whatever code for below layer modes.
* app/gegl/gimpoperation*mode.[ch]: add empty stubs of layer mode
operations which do nothing but copying input to output.
* app/gegl/Makefile.am
* app/gegl/gegl-types.h: add them here and reordered things a bit.
* app/gegl/gimp-gegl.c (gimp_gegl_init): register the new
operations.
* app/gegl/gimp-gegl-utils.c (gimp_layer_mode_to_gegl_operation):
return the new operations.
2008-10-11 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationpointfilter.c: make it abstract.
2008-10-11 Michael Natterer <mitch@gimp.org>
* app/gegl/gimp-gegl-utils.c (gimp_layer_mode_to_gegl_operation):
don't return non-existing layer modes (in fact, return "normal"
for all modes).
2008-10-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel.[ch]: add a projection node and
implement GimpDrawable::get_node(). Reconfigure the node in
visibility_changed(), set_color(), set_opacity() and
set_show_masked().
* app/core/gimpimage.c (gimp_image_get_graph): enable code that
projects the channels stack on top of the layer stack.
* app/core/gimpprojection-construct.c: remove the call to
gimp_projection_construct_channels() from the GEGL code path. Also
don't touch proj->construct_flag.
2008-10-11 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.c (gimp_layer_get_node): remove obsolete
assertion and redundant cast.
2008-10-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawablestack.c: add GimpContainer::add()
implementation, it's needed after all even though everybody uses
gimp_container_insert() on drawable stacks.
(gimp_drawable_stack_remove_node): no need to have a special check
for newly added nodes, this can't happen any more now that we have
an add() impl.
(gimp_drawable_stack_get_graph): free the reverse list.
2008-10-11 Michael Natterer <mitch@gimp.org>
Fix old bug in the GimpContainer implementation that wasn't
visible before the drawable stack completly b0rked when removing
the second-last item:
* app/core/gimpcontainer.c: add default implementations of ::add()
and ::remove() and update container->num_children there instead of
in the gimp_container_add() and _remove() wrapper functions.
This way not only external callbacks connected to the "add" and
"remove" signals are called with the correct num_children, also
implemtations of ::add() and ::remove() in subclass have the right
number available before/after upchaining. Add paranoia code to the
wrapper functions which check if the subclass reall chains up.
* app/core/gimplist.c: chain up in add() and remove().
2008-10-11 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimpdockseparator.c (gimp_dock_separator_drag_drop):
Initialize 'index'.
2008-10-11 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimpdockseparator.c (gimp_dock_separator_new): Add a
GtkAnchorType member to GimpDockSeparator that specifies where a
dropped dockable shall be inserted.
(gimp_dock_separator_drag_drop): Get rid of the ugly hack where
the role of a given separator was based on its position as a child
in its container. Simply decide what role the separator has by
loooking at its anchor-member.
* app/widgets/gimpdock.c (gimp_dock_init)
(gimp_dock_add_book): Give the GimpDockSeparators their
appropriate roles directly at their construction.
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawablestack.c
(gimp_drawable_stack_add_node)
(gimp_drawable_stack_remove_node): simplify by getting rid of code
duplication.
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawablestack.[ch]: move all the code that creates
a graph of drawables and all adding/removing/reordering code from
GimpImage to this file.
* app/core/gimpimage.c: remove the code here and use the layer
stack's subgraph instead. Add #if 0'ed code that blends the
channels on top of that but that doesn't work because channels
don't provide nodes yet.
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h
* app/core/Makefile.am
* app/core/gimpdrawablestack.[ch]: new GimpList subclass stub
which will manage the subgraphs of layers and channels and is also
the first step towards layer tree.
* app/core/gimpimage.c (gimp_image_init): keep the layers and
channels in GimpDrawableStacks instead of plain GimpLists.
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: add virtual function
GimpDrawable::get_node() which returns a node to be plugged into
the projection.
* app/core/gimplayer.[ch]: remove public get_node() api and
implement the virtual function instead.
* app/core/gimpimage.c: changed accordingly.
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/tools/gimpmovetool.c (gimp_move_tool_button_release): flush
the image after setting active items back from temporarily
selected ones. Fixes menu item sensitivity.
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.c: implement GimpItem::visibility-changed
and turn the layer's node into a nop when the layer is invisible.
(gimp_layer_get_node): connect the stuff to a nop here too for
invisible layers.
2008-10-10 Michael Natterer <mitch@gimp.org>
Bug 554983 Layers Projection using GEGL
First projection using GEGL, wheeeee. Disabled by default because
it doesn't work with floating selection (and will not, FS
refactoring is in the queue).
* app/core/gimpimage.[ch]: add gimp_image_get_graph() which
returns a GeglNode representing the image's projection.
(gimp_image_add_layer_node)
(gimp_image_remove_layer_node): new utility functions to add and
remove layer nodes to/from the graph.
(gimp_image_add_layer)
(gimp_image_remove_layer)
(gimp_image_position_layer): call them to keep the graph up to date.
* app/core/gimpdrawable.c (gimp_drawable_real_update): invalidate
the source node.
* app/core/gimpprojection.[ch]: keep a projection graph around and
add gimp_projection_get_sink_node() which returns the node that
writes to the projection tiles.
* app/core/gimpprojection-construct.c: add
gimp_projection_construct_gegl() which is a few-liner that uses a
GeglProcessor to run the projection graph.
(gimp_projection_construct): call the new function (disabled by
default).
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch]: add new functions
gimp_image_get_layer_by_index(), _channel_by_index() and
_vectors_by_index().
* app/core/gimpprojection-construct.c
* app/display/gimpdisplayshell-layer-select.c
* app/xcf/xcf-load.c: use them instead of looking the items up
in image->container and casting the return value.
2008-10-10 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.c (gimp_layer_translate)
(gimp_layer_get_node): the "shift" operation's x and y properties
are doubles not ints.
(gimp_layer_apply_mask): properly disconnect the mask node.
(gimp_layer_set_opacity): the opacity node has a "value" property,
not "opacity".
2008-10-09 Michael Natterer <mitch@gimp.org>
Address Bug 554983 Layers Projection using GEGL
* app/gegl/gimp-gegl-utils.[ch]: add (imcomplete) function
gimp_layer_mode_to_gegl_operation() from bug #554983.
* app/core/gimpdrawable.[ch]: add gimp_drawable_get_source_node()
which returns a GimpOperationTileSource for the drawable's
tiles.
(gimp_drawable_real_set_tiles)
(gimp_drawable_configure): set the node's "tiles" property.
* app/core/gimplayer.[ch]: add gimp_layer_get_node() which returns
a GeglNode with proxy "input" and "output" pads to be plugged
into the projection graph. The node has children for opacity,
mask, layer mode and layer offset.
(gimp_layer_translate)
(gimp_layer_add_mask)
(gimp_layer_apply_mask)
(gimp_layer_set_opacity)
(gimp_layer_set_mode): reconfigure the respective nodes.
* app/core/gimpimage.[ch]: keep a "graph" node around and destroy
it in finalize(). Not even a stub, just a silly GEGL dependency.
2008-10-09 Michael Natterer <mitch@gimp.org>
Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h
had a GEGL dependency (they will have in the next commit, but I
wanted to keep the commit separate).
* app/dialogs/Makefile.am
* app/file/Makefile.am
* app/gui/Makefile.am
* app/menus/Makefile.am
* app/paint/Makefile.am
* app/plug-in/Makefile.am
* app/text/Makefile.am
* app/vectors/Makefile.am
* app/widgets/Makefile.am
* app/xcf/Makefile.am: add GEGL_CFLAGS.
* app/actions/*.c
* app/core/*.c
* app/dialogs/*.c
* app/display/*.c
* app/file/*.c
* app/gui/*.c
* app/menus/*.c
* app/paint/*.c
* app/pdb/gimppdb-utils.c
* app/pdb/gimpprocedure.c
* app/plug-in/*.c
* app/text/*.c
* app/tools/*.c
* app/vectors/*.c
* app/widgets/*.c
* app/xcf/*.c: add <gegl.h> or replace <glib-object.h> by <gegl.h>
to all files which include a drawable subclass or gimpimage.h
* tools/pdbgen/app.pl: include <gegl.h> instead of <glib-object.h>
in all generated files.
* app/pdb/*-cmds.c: regenerated.
* data/images/gimp-splash.png: the goat is still sleeping.
By Aurore Derriennic.
Remove the last code duplication from the undo system (or if not the last 2008-10-09 Michael Natterer <mitch@gimp.org> Remove the last code duplication from the undo system (or if not the last then at least the most ugly): * app/core/gimpimage.[ch] (gimp_image_add_layer,channel,vectors): add "gboolean push_undo" parameter and add the item without touching undo if it's TRUE. Changed assertions from g_object_is_floating() to !gimp_item_is_attached() so they also take items from the undo stack and not only newly created ones. (gimp_image_remove_layer,channel,vectors): add "push_undo" parameter here too. Also add a "new_active" parameter where an optional new active item can be passed. (gimp_image_remove_layer,channel): these functions must not be called with push_undo=FALSE and a floating selection attached to the layer/channel. This can't currently happen; added warnings in case other code is changed and makes it happen anyway. * app/core/gimpchannelundo.c * app/core/gimplayerundo.c * app/vectors/gimpvectorsundo.c: use above functions to add/remove items instead of duplicating (parts of) their code. Pass push_undo=FALSE and the previously active item to the remove() functions. * app/actions/channels-commands.c * app/actions/edit-commands.c * app/actions/layers-commands.c * app/actions/vectors-commands.c * app/core/gimp-edit.c * app/core/gimpchannelundo.c * app/core/gimpimage-crop.c * app/core/gimpimage-duplicate.c * app/core/gimpimage-merge.c * app/core/gimpimage-quick-mask.c * app/core/gimpimage-scale.c * app/core/gimplayer-floating-sel.c * app/core/gimplayerundo.c * app/core/gimpselection.c * app/core/gimptemplate.c * app/display/gimpdisplayshell-dnd.c * app/text/gimptext-compat.c * app/tools/gimptexttool.c * app/tools/gimpvectortool.c * app/vectors/gimpvectors-import.c * app/vectors/gimpvectorsundo.c * app/widgets/gimpchanneltreeview.c * app/widgets/gimpitemtreeview.[ch] * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimpvectorstreeview.c * app/xcf/xcf-load.c * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/paths.pdb: changed accordingly (pass TRUE unless it's a new image like when loading and XCF file). * app/pdb/image-cmds.c * app/pdb/paths-cmds.c: regenerated. svn path=/trunk/; revision=27200
2008-10-10 03:40:41 +08:00
2008-10-09 Michael Natterer <mitch@gimp.org>
Remove the last code duplication from the undo system (or if not
the last then at least the most ugly):
* app/core/gimpimage.[ch] (gimp_image_add_layer,channel,vectors):
add "gboolean push_undo" parameter and add the item without
touching undo if it's TRUE. Changed assertions from
g_object_is_floating() to !gimp_item_is_attached() so they also
take items from the undo stack and not only newly created ones.
(gimp_image_remove_layer,channel,vectors): add "push_undo"
parameter here too. Also add a "new_active" parameter where an
optional new active item can be passed.
(gimp_image_remove_layer,channel): these functions must not be
called with push_undo=FALSE and a floating selection attached to
the layer/channel. This can't currently happen; added warnings in
case other code is changed and makes it happen anyway.
* app/core/gimpchannelundo.c
* app/core/gimplayerundo.c
* app/vectors/gimpvectorsundo.c: use above functions to add/remove
items instead of duplicating (parts of) their code. Pass
push_undo=FALSE and the previously active item to the remove()
functions.
* app/actions/channels-commands.c
* app/actions/edit-commands.c
* app/actions/layers-commands.c
* app/actions/vectors-commands.c
* app/core/gimp-edit.c
* app/core/gimpchannelundo.c
* app/core/gimpimage-crop.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-merge.c
* app/core/gimpimage-quick-mask.c
* app/core/gimpimage-scale.c
* app/core/gimplayer-floating-sel.c
* app/core/gimplayerundo.c
* app/core/gimpselection.c
* app/core/gimptemplate.c
* app/display/gimpdisplayshell-dnd.c
* app/text/gimptext-compat.c
* app/tools/gimptexttool.c
* app/tools/gimpvectortool.c
* app/vectors/gimpvectors-import.c
* app/vectors/gimpvectorsundo.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpitemtreeview.[ch]
* app/widgets/gimplayertreeview.c
* app/widgets/gimptoolbox-dnd.c
* app/widgets/gimpvectorstreeview.c
* app/xcf/xcf-load.c
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/paths.pdb: changed accordingly (pass TRUE
unless it's a new image like when loading and XCF file).
* app/pdb/image-cmds.c
* app/pdb/paths-cmds.c: regenerated.
2008-10-09 Sven Neumann <sven@gimp.org>
* data/images/Makefile.am
* data/images/gimp-devel-logo.png: added 128x128 version of
wilber-devel.png.
* app/dialogs/about-dialog.c (about_dialog_load_logo): use
gimp-devel-logo.png for unstable releasees.
2008-10-09 Sven Neumann <sven@gimp.org>
Bug 555697 build fails if configured with --without-libjpeg
* plug-ins/Makefile.am: applied patch from Simon Zilliken that
disables the build of the PSD plug-in if JPEG support is disabled.
2008-10-09 Michael Natterer <mitch@gimp.org>
Bug 134956 Curves tool doesn't save free curves
* app/core/gimpmarshal.list
* app/widgets/gimpsettingsbox.[ch]: add signal "file-dialog-setup"
and emit it when the export/import file chooser is fully
constructed. Callbacks can then do additional things to the
dialog, like adding custom buttons.
* app/tools/gimpcurvestool.h
* app/tools/gimplevelstool.h: add boolean member
"export_old_format".
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c (gimp_*_tool_dialog): connect to
the settings box' "file-dialog-setup".
(gimp_*_tool_export_setup): new callback which adds a toggle to
the file choosers that allows to export to the old format.
Default saving the new format, we defaulted to the old one before.
(gimp_*_tool_settings_export): check the "export_old_format"
boolean and only save the cruft format if it is TRUE; chain up
otherwise, which generically saves the new format.
* app/tools/gimplevelstool.c (gimp_levels_tool_settings_import):
add the same file format detection code as in the curves tool
so it transparently loads old and new levels files.
2008-10-09 Sven Neumann <sven@gimp.org>
* app/core/gimp-user-install.c (gimp_user_install_detect_old):
use GIMP_MINOR_VERSION to determine the version to migrate from.
2008-10-09 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpcurvesconfig.c (gimp_curves_config_save_cruft):
when saving a curve of type GIMP_CURVE_FREE, don't use
gimp_curve_get_point() because that returns nothing for free
curves.
(gimp_curves_config_load_cruft): reset the curve before loading it.
* app/core/gimpcurve.c (gimp_curve_get_point): instead of above
mentioned uninitialized nonsense, at least return -1,-1 for free
curves.
2008-10-09 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* tools/Makefile.am: change 2.6 to 2.7 here too.
2008-10-09 Sven Neumann <sven@gimp.org>
* README
* NEWS
* configure.in: bumped version to 2.7.0 after creating a stable
gimp-2-6 branch.
2008-10-09 Sven Neumann <sven@gimp.org>
* Made 2.6.1 release.
2008-10-08 Martin Nordholts <martinn@svn.gnome.org>
Bug 555587 PSD file crashes PSD plug-in
* plug-ins/file-psd/psd-load.c (add_merged_image): Handle
img_a->alpha_names being NULL.
2008-10-08 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpruler.c: cosmetics.
2008-10-08 Michael Natterer <mitch@gimp.org>
Quick hack I needed for debugging and which doesn't hurt:
* tools/test-clipboard.c (test_clipboard_paste): allow to paste to
STDOUT by passing '-' as filename.
2008-10-08 Martin Nordholts <martinn@svn.gnome.org>
* plug-ins/file-psd/psd-load.c (add_layers): Decrease scope of
comp_mode and initialize it.
2008-10-08 Martin Nordholts <martinn@svn.gnome.org>
Bug 555222 PSD Load Plugin: unsupported compression mode
* plug-ins/file-psd/psd-load.c (add_layers): Some PSD files can
have channels where a compression method used for the channel data
is specified, but without any actual channel data. Handle this
case. Fix inspired by patch from Chris Mohler.
2008-10-08 Sven Neumann <sven@gimp.org>
* app/base/tile-cache.c: use a GMutex instead of a GStaticMutex
as the latter needs API that causes compiler warnings about
dereferencing of type-punned pointers.
2008-10-07 Michael Natterer <mitch@gimp.org>
Bug 555362 gimp-remote is not working properly
* app/widgets/gimptoolbox-dnd.c (gimp_toolbox_dnd_init): add the
window itself as drop traget again so gimp-remote works.
2008-10-07 Michael Natterer <mitch@gimp.org>
* app/*/Makefile.am: reorder sections consistently. Remove
redundant CFLAGS.
2008-10-06 Sven Neumann <sven@gimp.org>
Bug 555280 some gif files will not be open
* plug-ins/common/file-gif-load.c (GetCode): be more tolerant and
continue loading with a warning message if there are bits missing
at the end of the file.
2008-10-06 Sven Neumann <sven@gimp.org>
* app/paint-funcs/scale-region.c (scale_region): removed debug
output.
2008-10-06 Michael Natterer <mitch@gimp.org>
* plug-ins/common/file-gih.c
* plug-ins/common/file-xbm.c: setting a spin button's
page_increment to 1 is of no use, set it to 10 instead.
2008-10-06 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-menu-path.c (menu_path_mappings): add a
fallback mapping from <Toolbox> to <Image> so we catch really
everything that wants to go to <Toolbox>.
2008-10-06 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.c (gimp_context_real_set_display): paranoia
fix for hypothetical but harmful misbehavior: when setting the
display from !=NULL to NULL, also set the image to NULL instead of
relying on whatever obscure implicit behavior of other parts of
GIMP which set a new display right away or make sure the image
goes away together with the display.
2008-10-06 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.c (gimp_layer_add_mask): g_return_if_fail()
on the mask's image being the same as the layer's image. The PDB
already checks for this.
* app/core/gimpimage.c (gimp_image_add_layer,channel,vectors):
remove calls to gimp_item_set_image() because we only accept
itmes of this image anyway.
2008-10-05 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpplugin-cleanup.c
* app/vectors/gimpanchor.c: #include <glib-object.h>, not
"glib-object.h".
2008-10-05 Michael Natterer <mitch@gimp.org>
* app/gegl/gegl-types.h: including ourselves serves no purpose.
2008-10-05 Michael Natterer <mitch@gimp.org>
Allow to "Open as Layers" in the empty display:
* app/widgets/gimpfiledialog.[ch]: add member
"gboolean open_as_layers". Rename gimp_file_dialog_set_image() to
gimp_file_dialog_set_save_image() and add
gimp_file_dialog_set_open_image() which sets both the image to
load layers into and the "open_as_layers" boolean.
* app/dialogs/file-open-dialog.c (file_open_dialog_response): look
at dialog->open_as_layers instead of dialog->image to decide whether
to open as layers (that's much more obvious). Enable open as layers
without existing image by creating the image if it doesn't exist.
* app/actions/file-commands.c (file_open_dialog_show): add "title"
parameter and take the uri from the image if none was passed. Use the
new gimp_file_dialog_set_open_image() instead of poking into the
dialog struct. Change callers to pass the title and not get the
uri from the image; instead always pass the image.
* app/actions/file-actions.c (file_actions_update): keep
"Open as Layers" sensitive even without image.
2008-10-05 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-contiguous-region.c: some formatting cleanups.
(find_contiguous_segment): changed to return gboolean not gint.
2008-10-05 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpruler.c: cache the PangoLayout. Use it not
only for drawing the numbers, but also to calculate the size
requisition depending on the actual font size.
2008-10-05 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpruler.c: instead of hardcoding a size
request, implement GtkWidget::size_request and set the size
depending on the font-scale.
2008-10-05 Sven Neumann <sven@gimp.org>
Bug 554890 JPEG Save Options Dialog does not remember
Subsampling mode
* plug-ins/file-jpeg/jpeg.c (run): fixed problem introduced by the
use of an enum for the subsampling factor.
2008-10-04 Michael Natterer <mitch@gimp.org>
* plug-ins/common/web-browser.c: return errors via return_vals
instead of displaying them with g_message().
2008-10-04 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpruler.c: increased ruler font scale from
X_SMALL to SMALL as it appears to be too small for many users.
* themes/Default/gtkrc: follow that change here, but keep the
ruler font extra small in the Small theme.
2008-10-04 Sven Neumann <sven@gimp.org>
* plug-ins/file-jpeg/jpeg-save.c: some cleanups to the subsampling
code; in an attempt to fix bug #555031.
2008-10-04 Sven Neumann <sven@gimp.org>
* INSTALL: updated GTK+ requirement.
2008-10-04 Michael Natterer <mitch@gimp.org>
* configure.in: depend on GTK+ 2.12.5 so motion history events of
extended input devices have proper timestamps needed by paint
tools.
2008-10-04 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpruler.c: make the font scale factor
configurable in gtkrc.
* themes/Default/gtkrc
* themes/Small/gtkrc: for documentation, add the default value here.
2008-10-03 Sven Neumann <sven@gimp.org>
* plug-ins/common/web-browser.c (browser_open_url): removed
trailing whitespace and corrected error message.
2008-10-03 Hans Breuer <hans@breuer.org>
* plug-ins/common/web-browser.c : when ShellExecute() is failing give
the detailed (currently intentionally untranslated) error message via
g_message()
* **/makefie.msc gimpdefs.msc app/gimpcore.def : updated
* app/core/gimpcurve.c : include <string.h> for memcmp()
* app/gegl/gimpcurvesconfig.c : include <string.h> for strcmp()
2008-10-03 Sven Neumann <sven@gimp.org>
Bug 554966 Gimp crashes creating a new image using a template
* app/display/gimpdisplayshell-scale.c
(gimp_display_shell_scale_update_scrollbars)
(gimp_display_shell_scale_update_rulers): bail out early if
shell->display is NULL.
2008-10-03 Michael Natterer <mitch@gimp.org>
Bug 554785 Compile failure on uri-backend-libcurl
* plug-ins/file-uri/uri-backend-libcurl.c: apply patch from Robby
Workman which fixes the build for this file.
2008-10-03 Sven Neumann <sven@gimp.org>
* configure.in: removed custom error message from checks for babl
and GEGL. The default error message is a lot more helpful.
2008-10-02 Sven Neumann <sven@gimp.org>
* app/tools/gimpgegltool.c (gimp_gegl_tool_operation_blacklisted):
add "text" to the list of blacklisted operations.
2008-10-02 Michael Natterer <mitch@gimp.org>
Bug 554646 Opening Help crashes GIMP with lqr-plugin installed
* app/widgets/gimphelp.c (gimp_help_get_help_domains): need to
assign (*foo)[i] and not *foo[i] of a gchar** returned via return
value location.
2008-10-02 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginprocframe.c: keep a reference to the
proc_frame's procedure. We can't asume it's always there since it
could be a temporary one and its plug-in might die during
procedure execution, taking the temp_proc with it.
2008-10-02 Martin Nordholts <martinn@svn.gnome.org>
Bug 553534 centering issues after image scaling and setting zoom
to 100%
* app/display/display-enums.h: Added a GimpZoomFocus enum with
'best guess', 'pointer' or 'image center' values.
* app/display/gimpdisplayshell-scale.[ch]
(gimp_display_shell_scale): Take a GimpZoomFocus parameter and
pass it on to
(gimp_display_shell_scale_get_zoom_focus): which returns the
requested zoom focus point if one was given, else makes a best
guess.
* app/actions/view-commands.c
* app/display/gimpstatusbar.c
* app/display/gimpnavigationeditor.c
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-scale-dialog.c: For explicit-zoom
commands like "zoom to 100%", always use the image center as the
zoom focus point. For all other zooming, continue to use the
best-guess method.
* app/display/display-enums.c: Regenerated.
2008-10-02 Sven Neumann <sven@gimp.org>
Bug 554898 Compile failure on uri-backend-wget.c
* plug-ins/file-uri/uri-backend-wget.c: removed spurious commas
that broke the build.
2008-10-01 Sven Neumann <sven@gimp.org>
* Makefile.am (EXTRA_DIST): added ChangeLog.pre-2-6 and NEWS.pre-2-6.
2008-10-01 Sven Neumann <sven@gimp.org>
* tools/gimptool.c: create the target directory and intermediate
parent directories as needed. Restores the behavior of the
gimptool shell script.
2008-10-01 Sven Neumann <sven@gimp.org>
* menus/Makefile.am (%.xml): added a dependency on configure.in to
make sure that the image-menu.xml file is rebuilt when the version
number is changed.
2008-10-01 Tor Lillqvist <tml@novell.com>
* app/plug-in/gimpplugin.c
* app/widgets/gtkscalebutton.c: : Don't #define _GNU_SOURCE on
Windows as it confuses newest mingw headers.
2008-10-01 Sven Neumann <sven@gimp.org>
* configure.in: bumped version to 2.6.1 (interface age 1).
2008-09-30 Sven Neumann <sven@gimp.org>
* Made 2.6.0 release.