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.
svn path=/trunk/; revision=27228
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().
svn path=/trunk/; revision=27227
* 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.
svn path=/trunk/; revision=27218
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.
svn path=/trunk/; revision=27216
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.
svn path=/trunk/; revision=27212
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.
svn path=/trunk/; revision=27211
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.
svn path=/trunk/; revision=27209
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.
svn path=/trunk/; revision=27208
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).
svn path=/trunk/; revision=27207
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.
svn path=/trunk/; revision=27206
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".
svn path=/trunk/; revision=27205
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.
svn path=/trunk/; revision=27204
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.
svn path=/trunk/; revision=27202
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-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.
svn path=/trunk/; revision=27199
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.
svn path=/trunk/; revision=27194
2008-10-09 Sven Neumann <sven@sven>
* app/core/gimp-user-install.c (gimp_user_install_detect_old):
use GIMP_MINOR_VERSION to determine the version to migrate from.
svn path=/trunk/; revision=27192
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.
svn path=/trunk/; revision=27190
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.
svn path=/trunk/; revision=27170
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.
svn path=/trunk/; revision=27164
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>.
svn path=/trunk/; revision=27147
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.
svn path=/trunk/; revision=27145
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.
svn path=/trunk/; revision=27138
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.
svn path=/trunk/; revision=27135
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.
svn path=/trunk/; revision=27134
2008-10-03 Sven Neumann <sven@gimp.org>
* 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. Fixes crash reported on the
mailing-list.
svn path=/trunk/; revision=27117
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.
svn path=/trunk/; revision=27114
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.
svn path=/trunk/; revision=27113
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.
svn path=/trunk/; revision=27112
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.
svn path=/trunk/; revision=27104
2008-10-01 Tor Lillqvist <tml@novell.com>
* app/widgets/gtkscalebutton.c: : Don't #define _GNU_SOURCE on
Windows as it confuses newest mingw headers.
svn path=/trunk/; revision=27097
2008-10-01 Tor Lillqvist <tml@novell.com>
* app/plug-in/gimpplugin.c: Don't #define _GNU_SOURCE on Windows
as it confuses newest mingw headers.
svn path=/trunk/; revision=27096
2008-09-30 Michael Natterer <mitch@gimp.org>
Bug 546924 – "New Image" misscalculating dimensions for non-pixel
sized templates
* app/core/gimptemplate.h: added private param flag
GIMP_TEMPLATE_PARAM_COPY_FIRST.
* app/core/gimptemplate.c (gimp_template_class_init): set the flag
on the resolution properties.
* app/dialogs/image-new-dialog.c (image_new_template_changed):
make sure the resolution properties are copied first.
* libgimpconfig/gimpconfig-utils.c (gimp_config_sync): remove
comment about fixing the template editor. That's not true any
more.
svn path=/trunk/; revision=27091
2008-09-30 Michael Natterer <mitch@gimp.org>
* app/tools/gimpimagemaptool.[ch]: keep a "default_config" object
around and use it to reset the tool if it exists.
(gimp_image_map_tool_edit_as): set the default_config on the new
tool so "reset" goes back to the values the tool was started with.
* app/tools/gimpcolorbalencetool.c (gimp_color_balance_tool_reset)
* app/tools/gimpcurvestool.c (gimp_curves_tool_reset)
* app/tools/gimphuesaturationtool.c (gimp_hue_saturation_tool_reset)
* app/tools/gimplevelstool.c (gimp_levels_tool_reset): use the
default config to reset the tool here too if it exists.
svn path=/trunk/; revision=27090
2008-09-30 Sven Neumann <sven@gimp.org>
* app/gui/splash.c: don't make the upper label bold. This change
compensates for the smaller width of the new splash screen.
svn path=/trunk/; revision=27089
2008-09-30 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added
gimp_pango_layout_set_scale().
* app/gui/splash.c: set a smaller font size on the lower label.
svn path=/trunk/; revision=27088
2008-09-30 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.c
(gimp_pango_layout_set_weight):
actually use the passed weight.
svn path=/trunk/; revision=27087
2008-09-30 Sven Neumann <sven@gimp.org>
* app/config/gimpbaseconfig.c
* app/config/gimpguiconfig.c: reverted parts of commit 25812.
Restores compatibility with old gimprc files.
svn path=/trunk/; revision=27086
image open.
* app/widgets/gimpdialogfactory.[ch]: Add 'toggle_visibility' to
GimpDialogFactory and as a parameter to gimp_dialog_factory_new(),
and set it there.
(gimp_dialog_factories_hide_foreach): Don't hide dialogs belonging
to factories with toggle_visibility FALSE.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): Move no-image event
handling to a new helper function, and make pressing Tab hide
windows.
* app/dialogs/dialogs.c (dialogs_init): Allow toggling visibility
for all factories except the display-factory.
svn path=/trunk/; revision=27077
2008-09-29 Michael Natterer <mitch@gimp.org>
* app/core/gimpcurve.c (gimp_curve_copy): no need to memcpy() the
arrays, they are properly copied by gimp_config_sync() now. Add
call to gimp_data_dirty() so GimpCurvesConfig gets notified.
* app/gegl/gimpcurvesconfig.c (gimp_curves_config_set_property):
use gimp_config_copy() instead of copying the curve menually.
svn path=/trunk/; revision=27076
2008-09-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.c
(gimp_dialog_factories_show_foreach)
(gimp_dialog_factories_hide_foreach): remove some casts that were
always useless and are even more useless now after the recent
readability improvement.
svn path=/trunk/; revision=27075
2008-09-29 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_new):
reduced
default window height to give a window aspect ratio of roughly
3:1
as requested by Peter.
svn path=/trunk/; revision=27072
2008-09-25 Michael Natterer <mitch@gimp.org>
* app/base/colorize.c (colorize_calculate): fix calculation of
final lookup table to not darken the image.
svn path=/trunk/; revision=27062
2008-09-25 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-dnd.c
(gimp_display_shell_drop_pixbuf): use the new helper function here
too.
svn path=/trunk/; revision=27060
2008-09-25 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-dnd.c
(gimp_display_shell_drop_component)
(gimp_display_shell_drop_drawable): moved duplicate code to a
helper function.
svn path=/trunk/; revision=27058
2008-09-25 Sven Neumann <sven@gimp.org>
* app/core/gimp.[ch]: added a 'restored' flag to the Gimp object
and set it in gimp_real_restore(). Added method
gimp_is_restored().
* app/gui/gui.c: call gui_unique_init() in gui_init() instead of
that later in gui_restore_after_callback(). By doing so we start
our DBus service (or message proxy window on Win32) much earlier
in the start process, thus reducing the time frame where two
instances of gimp can be launched.
* app/gui/gui-unique.c
* app/gui/gimpdbusservice.c: wait handling the queued file-open
requests until gimp is fully restored.
* app/gui/splash.c (splash_update): only run one iteration of
the
main loop. Doing it in a while loop can cause us to get stuck if
the gimp-unique service already added an idle handler.
svn path=/trunk/; revision=27049
deselects selection
* app/tools/gimprectangleselecttool.c
(gimp_rectangle_select_tool_execute): Be more intuitive when
clicking outside the current selection for the selection modes Add
and Subtract. More specifically, don't alter the selection mask at
all.
svn path=/trunk/; revision=27048
* app/tools/gimprectangleselecttool.c: Added new utility function
gimp_rectangle_select_tool_get_operation(), and started using it.
svn path=/trunk/; revision=27047
2008-09-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollereditor.c
(gimp_controller_editor_edit_response): call
gimp_controller_editor_sel_changed() with the right
GtkTreeSelection object (the editor's, not the action
list's). Fixes crash upon selecting an action for a controller
event. Spotted by Alexander Rabtchevich.
svn path=/trunk/; revision=27041
* tools/pdbgen/pdb/selection.pdb (selection_layer_alpha): Update
documentation, the layer does not need to have an alpha channel. A
layer without an alpha channel is considered opaque.
* app/pdb/selection-cmds.c
* libgimp/gimpselection_pdb.c: Regenerated.
svn path=/trunk/; revision=27040
2008-09-24 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/layer.pdb
* tools/pdbgen/pdb/image.pdb: added new scale procedures that
allow to specify the interpolation explicitly. Fixes bug
#486977.
Also pass the progress parameter to the scale and rotate
functions.
* app/pdb/image-cmds.c
* app/pdb/internal-procs.c
* app/pdb/layer-cmds.c
* libgimp/gimpimage_pdb.[ch]
* libgimp/gimplayer_pdb.[ch]: regenerated.
* libgimp/gimp.def: updated.
svn path=/trunk/; revision=27039
2008-09-24 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/image.pdb: fixed error and some typos in the
PDB documentation.
* app/pdb/image-cmds.c
* libgimp/gimpimage_pdb.c: regenerated.
svn path=/trunk/; revision=27038
2008-09-23 Sven Neumann <sven@gimp.org>
Move the "Use GEGL" check-box to the Colors menu (bug #548760):
* app/actions/Makefile.am
* app/actions/config-actions.[ch]
* app/actions/config-commands.[ch]: new files holding the
"config"
action group that includes the "use-gegl" toggle action.
* app/actions/debug-actions.c
* app/actions/debug-commands.[ch]: removed the "use-gegl"
action
here.
* app/menus/menus.c
* app/actions/actions.c: added the new action group.
* app/widgets/gimphelp-ids.h: added a help ID for the
"use-gegl"
action.
* menus/image-menu.xml.in: moved the "Use GEGL" check-box to
the
Colors menu.
svn path=/trunk/; revision=27035
2008-09-21 Sven Neumann <sven@gimp.org>
* app/actions/windows-actions.c: don't set a help ID on the
display menu items.
* app/widgets/gimphelp-ids.h: removed now unused help ID.
* app/menus/windows-menu.c: show a larger image preview in the
tooltip.
svn path=/trunk/; revision=27028
2008-09-20 Sven Neumann <sven@gimp.org>
* app/dialogs/about-dialog.c: put translator comment on a single
line, looks better in the .po file.
svn path=/trunk/; revision=27025
2008-09-20 Simon Budig <simon@gimp.org>
* app/core/gimpcurve.c: whitespace fix
* app/gegl/gimplevelsconfig.c: make sure that the points set by
default gets unset before calculating the levels->curves
transition. We don't want stray points in the corners.
svn path=/trunk/; revision=27018
2008-09-19 Sven Neumann <sven@gimp.org>
* app/actions/plug-in-actions.c
(plug_in_actions_history_changed):
try to use the menu label with ellipsis instead of the result of
gimp_plug_in_procedure_get_label() which has ellipsis and
mnemonics stripped.
svn path=/trunk/; revision=27005
2008-09-19 Sven Neumann <sven@gimp.org>
* app/gegl/gimplevelsconfig.c
(gimp_levels_config_to_curves_config):
need to set the point at the index corresponding to the x value.
svn path=/trunk/; revision=27003
2008-09-18 Simon Budig <simon@gimp.org>
* app/core/gimpcurve.c: comment fix
* app/gegl/gimplevelsconfig.c: improve the levels->curves
transition. Not perfect, the result does not match a "real"
gamma correction, especially in the dark areas, where the
curves are too dark compared to the levels.
svn path=/trunk/; revision=27001
2008-09-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdock.c (gimp_dock_style_set): reset the RC
styles of the dock's children after parsing the RC file snippet
for them. Fixes font size for detached dockables.
svn path=/trunk/; revision=26992
2008-09-18 Tor Lillqvist <tml@novell.com>
* app/plug-in/gimppluginshm.c: Use INVALID_HANDLE_VALUE instead of
INVALID_FILE_HANDLE which was an misunderstanding.
svn path=/trunk/; revision=26989
2008-09-18 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdock.c: made the font scale factor for the
docks
configurable in gtkrc.
* themes/Default/gtkrc
* themes/Small/gtkrc: for documentation purposes, added the
default value for GimpDock::font-scale here. Changed all style
property names to use the canonical names.
svn path=/trunk/; revision=26988
2008-09-18 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-shadow.c
(gimp_drawable_get_shadow_tiles):
no need to check if the drawable is attached as shadow tiles are
per drawable now.
svn path=/trunk/; revision=26986
2008-09-18 Simon Budig <simon@gimp.org>
* app/gegl/gimpbrightnesscontrastconfig.c: fix the
brightness/contrast --> levels step by doing proper math (TM).
svn path=/trunk/; revision=26984
2008-09-18 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/drawable.pdb: gimp_drawable_mask_intersect()
and gimp_drawable_mask_bounds() may only be used on attached
drawables. Added missing checks.
* app/pdb/drawable-cmds.c: regenerated.
svn path=/trunk/; revision=26983
2008-09-16 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: added GError parameter to
gimp_image_{raise,lower}_{channel,layer,vectors} functions and
removed calls to g_message().
* app/actions/channels-commands.c
* app/actions/layers-commands.c
* app/actions/vectors-commands.c: pass NULL for the GError
parameter as these actions are insensitive if they would fail.
* tools/pdbgen/pdb/image.pdb: changed accordingly. Corrected the
documentation.
* app/pdb/image-cmds.c
* libgimp/gimpimage_pdb.c: regenerated.
svn path=/trunk/; revision=26953
2008-09-16 Michael Natterer <mitch@gimp.org>
* app/actions/actions.c: use the "tool options" icon for the
"context" action group since that's what its actions mostly
control.
* app/actions/dialogs-actions.c: use the "brush", "gradient" and
"palette" icons also for their resp. editors since that's also the
icons they use in their dockable tabs.
svn path=/trunk/; revision=26949
2008-09-15 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.[ch] (gimp_layer_add_mask): add GError
parameter and replace g_message() by g_set_error().
* app/core/gimplayermaskundo.c
* app/xcf/xcf-load.c
* app/actions/layers-commands.c: pass NULL errors since these
places know what they are doing. Ha ha...
* tools/pdbgen/pdb/layer.pdb
* tools/pdbgen/pdb/image.pdb: pass the error so we get more real
error messages for failed PDB calls.
* app/pdb/image-cmds.c
* app/pdb/layer-cmds.c: regenerated.
svn path=/trunk/; revision=26948
2008-09-15 Michael Natterer <mitch@gimp.org>
Bug 552413 – Script triggers Gimp-Core-CRITICAL
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/layer.pdb: add some more checks that produce
proper PDB error messages when adding and removing layer masks
instead of having the code run into assertions in the called core
functions. Also add some more checks when removing layers,
channels or vectors.
* app/pdb/image-cmds.c
* app/pdb/layer-cmds.c: regenerated.
svn path=/trunk/; revision=26947
2008-09-11 Michael Natterer <mitch@gimp.org>
* app/core/gimp-modules.c (gimp_modules_unload): make a string
pointer const.
svn path=/trunk/; revision=26927
2008-09-10 Tor Lillqvist <tml@novell.com>
* app/gui/gui-unique.c (gui_unique_win32_exit): Destroy the proxy
window here so that gimp_unique_win32_open() in app/unique.c won't
find it. This is important especially in a developer version where
the debug output window might be left open and the proxy window
still existing for a long time after the GTK+ main loop of the
GIMP GUI has finished. Thanks to Michael Schumacher for pointing
this out.
There is still a small race window here after GIMP has begun
closing down its GUI in gui_exit_callback() and before the proxy
window has gone away. If another GIMP starts during that interval,
it will find the proxy window and send it a message, which will
then either be ignored, or the proxy window will have been
destroyed before it gets the message. Let's ignore that. There is
a much wider time window during which multiple GIMP instances may
be started during GIMP startup anyway.
svn path=/trunk/; revision=26917
2008-09-10 Tor Lillqvist <tml@novell.com>
* app/gui/gui-unique.c: gui_unique_win32_message_handler() can be
static. Include file/file-open.h for file_open_from_command_line()
declaration. Fix copy/paste glitch in gui_unique_exit().
svn path=/trunk/; revision=26916
2008-09-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactionview.c: factor out function that selects a
path and scrolls to that path. Keep the selected path visible if
it is still there after filtering.
svn path=/trunk/; revision=26914
2008-09-10 Michael Natterer <mitch@gimp.org>
* app/actions/context-actions.c: made action labels more
consistent, use '°' instead of 'degrees'.
* app/actions/context-commands.c: cosmetic change in macro
parameters.
svn path=/trunk/; revision=26913
2008-09-08 Sven Neumann <sven@gimp.org>
* app/paint/gimpbrushcore.c: based on a patch from David Gowers
clamp the brush scale so that the brush never becomes smaller
than
0.5 pixels. Fixes bug #548631.
svn path=/trunk/; revision=26900
2008-09-08 Michael Natterer <mitch@gimp.org>
Bug 551306 – Color picker for text tool does not show selected
palette
* app/tools/gimptexttool.c (gimp_text_tool_register): add
GIMP_CONTEXT_PALETTE_MASK to the tool option's context mask so the
color popup's palette follows the globally selected palette.
svn path=/trunk/; revision=26899
2008-09-08 Sven Neumann <sven@gimp.org>
* authors.xml: restored alphabetic order. Use real name instead
of
a nick.
* AUTHORS: regenerated.
* app/dialogs/authors.xsl: changed rule to only include
contributors from the 2.6 development cycle in the About dialog.
svn path=/trunk/; revision=26898
2008-09-07 Sven Neumann <sven@gimp.org>
Applied 'gimp-decimate.diff' as announced on the mailing-list:
* app/gimp-log.[ch]: added log domain "scale".
* app/paint-funcs/scale-region.c: replaced decimation routines
with box filters. Only use the decimation routines to pre-scale
the image, always apply the interpolation for the final step.
svn path=/trunk/; revision=26896
* app/widgets/gimpnavigationview.c
(gimp_navigation_view_set_marker): Invalidating the view renderer
is just plain wrong, revert to redrawing the view. We will need to
solve the flicker in some other way.
svn path=/trunk/; revision=26894
* app/core/gimpchannel.c (gimp_channel_real_all): We don't want to
clear the region, we want to fill it with OPAQUE_OPACITY.
svn path=/trunk/; revision=26891
2008-09-06 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationhuesaturation.c
(gimp_operation_hue_saturation_process): don't use // for comments.
svn path=/trunk/; revision=26885
* app/gegl/gimpoperationhuesaturation.c
(gimp_operation_hue_saturation_process): Properly map the
secondary hue. Based on patch by Michael Deal.
svn path=/trunk/; revision=26883
2008-09-05 Sven Neumann <sven@gimp.org>
* app/tools/gimpgegltool.c: blacklist "color-convert" and all
GIMP
operations.
svn path=/trunk/; revision=26879
2008-09-05 Sven Neumann <sven@gimp.org>
* app/tools/gimpgegltool.c: added a blacklist of operations that
should not be shown. We may want to add more operations here.
svn path=/trunk/; revision=26878
2008-09-05 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpplugindebug.[ch] (gimp_plug_in_debug_argv): made
the "args" parameter const.
* app/plug-in/gimpplugin.c (gimp_plug_in_open): made some strings
const.
svn path=/trunk/; revision=26877
2008-09-05 Michael Natterer <mitch@gimp.org>
Bug 545325 – Scrollbars do not disappear automatically
* app/widgets/gimpcontainertreeview.c: autosize the columns after
each operation that can reduce the treeview's width.
svn path=/trunk/; revision=26875
2008-09-05 Michael Natterer <mitch@gimp.org>
Bug 550983 – The size displayed in the status bar isn't correct
* app/tools/gimprectangletool.c: use the right precision when
pushing the rectangle's size as coordinates to the statusbar.
svn path=/trunk/; revision=26872
2008-09-05 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpactioneditor.[ch]: new simple widget which
contains a GimpActionView plus the search entry.
* app/dialogs/keyboard-shortcuts-dialog.c: use the new widget
instead of implementing the search entry here.
* app/widgets/gimpcontrollereditor.c: use a GimpActionEditor
instead of GimpActionView so the actions become searchable here
too.
svn path=/trunk/; revision=26870
2008-09-04 Sven Neumann <sven@gimp.org>
* app/tools/gimptransformtool.c
(gimp_transform_tool_initialize):
expose the preview when the tool is initialized. Fixes missing
redraws when the tool is selected from the menus (bug #550911).
(gimp_transform_tool_motion): expose the preview after
recalculating the transformation matrix.
svn path=/trunk/; revision=26868
2008-09-04 Tor Lillqvist <tml@novell.com>
* app/base/base-utils.h
* app/base/base-utils.c: The return type of get_pid() should be
gint, not GPid. This matches also the C library on Windows, in
which the return type of getpid() is int, not a pointer or
intptr_t. The use for GPid in the GLib API is as a "handle" to a
descendant processes, returned by the g_spawn_*() functions, and
passed to the g_child_watch_*() functions, not as a "process
identifier".
svn path=/trunk/; revision=26866
2008-09-04 Sven Neumann <sven@gimp.org>
* app/dialogs/keyboard-shortcuts-dialog.c: tweaked spacing
between
entry and button and resolved a mnemnic conflict.
svn path=/trunk/; revision=26862
2008-09-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactionview.[ch]: add a column for the casefold
label of the action and filter on that.
* app/dialogs/keyboard-shortcuts-dialog.c: add a button to clear
the filter entry. Changed the label to "Search:".
svn path=/trunk/; revision=26861
2008-09-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactionview.[ch]: add an GtkTreeModelFilter
between the GtkTreeView and the actual GtkTreeStore. Add API to
set the filter which is simply a string that's matched with
strstr(). Quite some things improvable here...
* app/dialogs/keyboard-shortcuts-dialog.c: add a "Filter" entry
and set the filter on the action view.
svn path=/trunk/; revision=26859
2008-09-03 Michael Natterer <mitch@gimp.org>
* app/pdb/gimpprocedure.[ch] (gimp_procedure_set_static_strings):
made the string parameters const.
svn path=/trunk/; revision=26846
2008-09-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpnavigationview.c
(gimp_navigation_view_motion_notify): remove the call to
gdk_window_get_pointer() again.
(gimp_navigation_view_grab_pointer): instead, grab the pointer
properly with owner_events=FALSE so all events are reported with
respect to the widget's window.
svn path=/trunk/; revision=26844
2008-09-03 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
* libgimpwidgets/gimpcolorselect.c
* modules/color-selector-water.c
* plug-ins/ifs-compose/ifs-compose.c: instead of using
gdk_window_get_pointer() if GdkEventMotion::is_hint is TRUE,
simply always use the coords from the event and call
gdk_event_request_motions() to ask for more motion events. This is
the recommended way and also works for events from devices other
than the core pointer.
* plug-ins/ifs-compose/ifs-compose.c (design_area_motion): some
code cleanup while i was at it.
svn path=/trunk/; revision=26843
2008-09-02 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginshm.c: if INVALID_FILE_HANDLE is
undefined,
define it as the constant that we used to use here.
svn path=/trunk/; revision=26839
2008-09-02 Michael Natterer <mitch@gimp.org>
* app/display/gimpstatusbar.c: use gtk_widget_get_style() instead
of widget->style.
svn path=/trunk/; revision=26837
2008-09-02 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpselectiondata.c: no need to set strlen(sting)+1
bytes on the GtkSelectionData because gtk_selection_data_set()
zero-terminates all data anyway.
svn path=/trunk/; revision=26835
2008-09-02 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpselectiondata.c (gimp_selection_data_get_name):
return a const string, no need to strdup it since it's only used
temporarily in this file.
(gimp_selection_data_get_image)
(gimp_selection_data_get_component)
(gimp_selection_data_get_item)
(gimp_selection_data_get_object): changed accordingly. Move
variables to local scopes and simplify.
svn path=/trunk/; revision=26834
2008-09-01 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginshm.c (gimp_plug_in_shm_new): use the
constant INVALID_FILE_HANDLE instead of 0xFFFFFFFF. Fixes shared
memory tile transport on 64bit Windows systems.
svn path=/trunk/; revision=26827
2008-09-01 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs.[ch]: added clear_region().
* app/base/tile-manager-crop.c
* app/core/gimpchannel.c
* app/core/gimpimage-merge.c
* app/core/gimpmaskundo.c
* app/core/gimpprojection-construct.c: use it instead of calling
color_region() with a zero color.
svn path=/trunk/; revision=26826
2008-09-01 Sven Neumann <sven@gimp.org>
* app/core/gimpprojection-construct.c
(gimp_projection_initialize):
also need to initialize the projection if the layer mask could
introduce transparency. Fixes bug #550024.
svn path=/trunk/; revision=26824
2008-08-31 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell-scale.c
(gimp_display_shell_set_initial_scale): We need to set the scale
before using it. Fixes at least gimp_display_shell_fill() and
Image -> Duplicate giving weird initial scales.
svn path=/trunk/; revision=26823
2008-08-28 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell-scale.c
(gimp_display_shell_scale_to): Canonically calculate scale to use
for zoom-focus calculations so that it also works when not in Dot
by dot-mode.
svn path=/trunk/; revision=26805
2008-08-28 Martin Nordholts <martinn@svn.gnome.org>
* app/core/gimpimage.[ch]: Make the size-changed-detailed signal
also contain previous image size.
* app/display/gimpdisplayshell-handlers.c
(gimp_display_shell_size_changed_detailed_handler): Take the
previous image size into account and center the image if it starts
to fit (axis indepentently) in the viewport due to the resize.
* app/core/gimpundo.h
* app/core/gimpimage-undo.c
* app/core/gimpimageundo.[ch]
* app/core/gimpimage-undo-push.[ch]: Manage the
previous-size-information.
* app/core/gimpimage-crop.c
* app/core/gimpimage-scale.c
* app/core/gimpimage-rotate.c
* app/core/gimpimage-resize.c: Propagate previous size to the
size-changed-detailed signal emission and the undo-system.
svn path=/trunk/; revision=26804
2008-08-28 Sven Neumann <sven@gimp.org>
* app/config/gimpguiconfig.[ch]: allow to disable the Wilber
image
shown at the top of the toolbox.
* app/widgets/gimptoolbox.c: honor the new gimprc option.
* app/config/gimprc-blurbs.h: document the old and new toolbox
preferences.
svn path=/trunk/; revision=26800
2008-08-27 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.c (gimp_ui_manager_item_key_press):
try the find_widget_under_pointer() hack only if the menu item's
parent is really a GtkMenu (not a GtkMenuBar). Fixes crash spotted
by rubikcube.
svn path=/trunk/; revision=26796
2008-08-27 Sven Neumann <sven@gimp.org>
* app/tools/gimptransformtool.c: moved hiding the dialog from
gimp_transform_tool_real_transform() to
gimp_transform_tool_doit().
Delay undrawing the preview in doit() until the transformation
is
done. This removes the annoying flicker at the end.
svn path=/trunk/; revision=26789
2008-08-27 Sven Neumann <sven@gimp.org>
* app/tools/gimptransformtool.c
(gimp_transform_tool_real_transform):
hide the tool dialog before starting to perform the
transformation.
svn path=/trunk/; revision=26787
2008-08-27 Sven Neumann <sven@gimp.org>
* app/core/gimp-transform-region.c: also use PixelSurround for
the
linear interpolation. Sprinkled some const qualifiers.
svn path=/trunk/; revision=26786
2008-08-26 Sven Neumann <sven@gimp.org>
* app/paint-funcs/scale-region.c: further simplified the code
path
that is executed when a brush is scaled up. We don't need to
scale
in several steps here.
svn path=/trunk/; revision=26780
2008-08-26 Sven Neumann <sven@gimp.org>
* app/paint-funcs/scale-region.c: removed some unused parameters
from the code that is used for brush scaling. Added sanity
checks.
svn path=/trunk/; revision=26779
2008-08-26 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell-scroll.c
(gimp_display_shell_scroll_unoverscrollify): New function.
* app/display/gimpdisplayshell-autoscroll.c
(gimp_display_shell_autoscroll_timeout): Make sure the autoscroll
does not result in overscroll. This more or less finalizes the
implementation of the enhancement request in bug #362915.
svn path=/trunk/; revision=26775
2008-08-26 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell-scroll.c
(gimp_display_shell_scroll): If no scroll should be applied we can
return early.
svn path=/trunk/; revision=26774
2008-08-26 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell-autoscroll.c
(gimp_display_shell_autoscroll_timeout): Pass the scroll amount in
variables that we can modify as we please before they actually
reach gimp_display_shell_scroll().
svn path=/trunk/; revision=26773
2008-08-26 Michael Natterer <mitch@gimp.org>
* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui): don't
hardcode the attach coords for the fixed containing the dynamics
labels but use the table's real width instead. Fixes broken table
layout in the airbrush options.
svn path=/trunk/; revision=26771
2008-08-25 Sven Neumann <sven@gimp.org>
* app/paint-funcs/scale-region.c: use PixelSurround to access
the
source pixels in a more efficient way.
svn path=/trunk/; revision=26768
2008-08-25 Sven Neumann <sven@gimp.org>
* app/base/tile-manager.c (read_pixel_data_1): changed to
silently
return in case of out-of-bounds access. There's code that relies
on this.
* app/base/pixel-surround.[ch]: added SMEAR as another edge
strategy for the PixelSurround helper.
* core/gimp-transform-region.c: changed accordingly.
svn path=/trunk/; revision=26767
2008-08-25 Sven Neumann <sven@gimp.org>
* app/paint-funcs/scale-region.c: don't scale in several steps
if
interpolation is GIMP_INTERPOLATION_NONE.
svn path=/trunk/; revision=26760
2008-08-25 Sven Neumann <sven@gimp.org>
* app/base/tile-private.h: provide a macro version of
tile_data_pointer().
* app/base/tile.c (tile_data_pointer): turned into a wrapper
around the TILE_DATA_POINTER() macro.
* app/base/tile-manager.c (read_pixel_data) (read_pixel_data_1)
(write_pixel_data) (write_pixel_data_1): access tile struct
members directly and use the new macro to access the tile data.
svn path=/trunk/; revision=26757
2008-08-25 Sven Neumann <sven@gimp.org>
* app/base/tile-manager.c (read_pixel_data_1): removed redundant
check that is already performed by tile_manager_get_tile_num().
Warn if an out-of-bounds read is requested, instead of silently
doing nothing.
svn path=/trunk/; revision=26755
2008-08-25 Sven Neumann <sven@gimp.org>
* app/dialogs/image-scale-dialog.c: hide the Scale dialog before
starting to perform the scale operation.
svn path=/trunk/; revision=26753
2008-08-24 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimplevelstool.c (gimp_levels_tool_dialog): Set
page_size for the Ouput/Input Levels lower/upper adjustments to 0
to adapt to new and more correct value clamping in GTK+.
svn path=/trunk/; revision=26743
2008-08-24 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpnavigationeditor.c
(gimp_navigation_editor_popup): Prevent the popup from being
positioned far away from the click position. This is further work
on bug #362915.
svn path=/trunk/; revision=26741
2008-08-24 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpnavigationeditor.c
(gimp_navigation_editor_popup): Further clarify and simplify.
svn path=/trunk/; revision=26740
2008-08-24 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpnavigationeditor.c
(gimp_navigation_editor_popup): Correct the positioning
calculation (while still retaining current overall behaviour).
svn path=/trunk/; revision=26739
2008-08-24 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimpnavigationview.c
(gimp_navigation_view_draw_marker): Use a define for border width.
svn path=/trunk/; revision=26738
2008-08-24 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimpnavigationview.c
(gimp_navigation_view_set_marker): Don't redraw the view, only
invalidate it. This causes the redraw to occur in an idle-handler
intead of each time this function is called, which reduces flicker
when opening new images. Stil some flicker left though...
svn path=/trunk/; revision=26737
2008-08-24 Sven Neumann <sven@gimp.org>
* app/paint-funcs/scale-region.c (scale) (scale_pr): use a
constant to decide if we should decimate or interpolate.
svn path=/trunk/; revision=26736
2008-08-24 Sven Neumann <sven@gimp.org>
* app/paint-funcs/scale-region.c: instead of iterating over
tiles
manually and using write_pixel_data_1() to write the data, use
pixel_region_process() to iterate over the destination.
svn path=/trunk/; revision=26735
2008-08-24 Sven Neumann <sven@gimp.org>
* app/paint-funcs/scale-region.c (scale): sprinkled with const
qualifiers. Moved calculations out of the loops.
svn path=/trunk/; revision=26733
2008-08-24 Sven Neumann <sven@gimp.org>
* app/paint-funcs/scale-region.c (scale): removed optimization
of
the case where the source and dest regions are the same size.
This
should not happen any longer.
svn path=/trunk/; revision=26732
2008-08-24 Sven Neumann <sven@gimp.org>
* app/paint-funcs/scale-region.c (determine_scale): avoid
unnecessary scaling when scaling factor is 2^n.
(pixel_average): replaced with optimized pixel averager from
tile-pyramid.c (from the gimp-2-4 branch with some minor
corrections).
svn path=/trunk/; revision=26731
2008-08-23 Sven Neumann <sven@gimp.org>
* app/paint-funcs/scale-region.c (scale): replaced code that
copies pixels from one tile-manager to another by a call to
copy_region().
svn path=/trunk/; revision=26730
2008-08-23 Lars-Peter Clausen <lars@metafoo.de>
* tools/pdbgen/pdb/gradient.pdb
(gimp_gradient_segment_range_blend_(colors|opacity)): Don't crash
if the index of the last segment is out of range.
* app/pdb/gradient-cmds.c: regenerated.
svn path=/trunk/; revision=26723
2008-08-23 Sven Neumann <sven@gimp.org>
* app/core/gimpimagemap.c (gimp_image_map_init): only create and
use a timer if GIMP_UNSTABLE is defined.
svn path=/trunk/; revision=26720
2008-08-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpnavigationview.c
* libgimpwidgets/gimpscrolledpreview.c: hardcode the colors to
black and white. Using theme colors doesn't make sense here.
svn path=/trunk/; revision=26719
2008-08-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpnavigationview.c: indicate the viewport by
shading the outside region using Cairo.
svn path=/trunk/; revision=26716
2008-08-22 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimpnavigationview.c
(gimp_navigation_view_grab_pointer): Don't confine the cursor to
the navigation view window because that limitation only feels in
the way with overscroll.
svn path=/trunk/; revision=26714
2008-08-22 Michael Natterer <mitch@gimp.org>
* app/display/gimpcanvas.[ch]: add gimp_canvas_scroll() which
scrolls the canvas and makes the result visible immediately.
* app/display/gimpdisplayshell-scroll.c
(gimp_display_shell_scroll): use the new function.
svn path=/trunk/; revision=26712
2008-08-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimptoolbox.c: removed the "Use GEGL" check-box
from the toolbox.
* app/config/gimpcoreconfig.c: changed the default for
"use-gegl"
to FALSE (in preparation of the 2.6 release).
* app/actions/debug-commands.[ch]
* app/actions/debug-actions.c
* menus/image-menu.xml.in: added a "Use GEGL" check-box to the
Debug menu. Temporary solution until a final decision is made.
svn path=/trunk/; revision=26711
2008-08-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpaction.c
* app/widgets/gimpdockable.c
* app/widgets/gimpradioaction.c
* app/widgets/gimpstringaction.c
* app/widgets/gimptoggleaction.c: added basic support for icon
names for actions and dockables. Uses the stock-id as icon name
if the icon theme provides an icon under this name.
* app/dialogs/dialogs.c
* app/actions/documents-actions.c
* app/actions/dialogs-actions.c: use the "document-open-recent"
icon for the document history.
svn path=/trunk/; revision=26710
2008-08-22 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimpnavigationview.c: Adapted to play nicely with
the overscroll feature. Basically remove limitations of the
marker, but also draw the marker frame with an inner and outer
border so it is possible to see on what side the viewport is when
zoomed out and overscrolled to the max. This is further work on
bug #362915.
svn path=/trunk/; revision=26709
2008-08-21 Michael Natterer <mitch@gimp.org>
* app/display/gimpcanvas.[ch]: turn into a GtkContainer subclass
mainly to reduce the diff to a local hack I'm at. Also swallow
some code that used to be called on the canvas widget externally.
* app/display/gimpdisplayshell.c (gimp_display_shell_new): remove
the swallowed code.
* app/display/gimpdisplayshell-callbacks.h: remove canvas event
mask define.
svn path=/trunk/; revision=26708
2008-08-21 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginprocedure.[ch]
* app/plug-in/gimptemporaryprocedure.c: moved error handling for
asynchronous procedure calls to a central place. Use the plug-in
label instead of the procedure name for the error message.
svn path=/trunk/; revision=26703
2008-08-21 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginprocedure.c
* app/plug-in/gimptemporaryprocedure.c: don't just free the
return
values when running procedures asynchronously. Instead examine
them and display the error message if there's one.
* app/plug-in/gimppluginmanager-call.c
(gimp_plug_in_manager_call_run_temp): return NULL if
procedure->plug_in is not set.
* app/plug-in/gimpplugin-message.c: comment.
svn path=/trunk/; revision=26700
2008-08-21 Michael Natterer <mitch@gimp.org>
* app/tools/gimpforegroundselecttool.c
(gimp_foreground_select_tool_init): set precision back to
PIXEL_CENTER because it's set to SUBPIXEL by the parent class.
svn path=/trunk/; revision=26687
2008-08-20 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell-scroll.c: Use a constant for the
minimum step amount for scrollbars.
svn path=/trunk/; revision=26685
2008-08-20 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.c: reindent prototypes.
Steal find_widget_under_pointer() from gtktooltip.c
(gimp_ui_manager_item_key_press): use the function to invoke help
for the widget under the pointer if there is no selected menu
item. Makes F1 work on insensitive menu items.
svn path=/trunk/; revision=26684
2008-08-20 Michael Natterer <mitch@gimp.org>
* app/text/gimptextlayout-render.c (gimp_text_layout_render): add
PANGO_ALIGN_LEFT to the switch to fix warning about unhandled value.
svn path=/trunk/; revision=26682
2008-08-20 Michael Natterer <mitch@gimp.org>
Bug 496772 – Position shown in the statusbar needs more
precision (for some tools)
* app/display/display-enums.[ch]: add enum GimpCursorPrecision
which can be one of { PIXEL_CENTER, PIXEL_BORDER, SUBPIXEL }.
* app/display/gimpdisplayshell-cursor.[ch]: add "precision"
parameter to gimp_display_shell_update_cursor() and pass it
on to the statusbar.
* app/display/gimpstatusbar.[ch]: add "precision" parameters to
the cursor coordinates APIs, offset the passed coords accordingly
and display them with one decimal point if SUBPIXEL is requested
and the display's unit is PIXEL. Keep a second floating-point
format string around at any time.
* app/tools/gimptoolcontrol.[ch]: add a "precision" member and API
so tools can configure the precision they need. Defalt to
PIXEL_CENTER since that's right for almost all tools.
* app/display/gimpdisplayshell-callbacks.c: pass the tool's
precision to gimp_display_shell_update_cursor().
* app/tools/gimptool.[ch]: add "precision" parameter to
gimp_tool_push_status_coords() and pass it on to the statusbar.
* app/tools/gimpaligntool.c
* app/tools/gimpblendtool.c
* app/tools/gimpcolortool.c
* app/tools/gimpcroptool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpfliptool.c
* app/tools/gimpfreeselecttool.c
* app/tools/gimpmovetool.c
* app/tools/gimppainttool.c
* app/tools/gimpperspectiveclonetool.c
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.c
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c: set precision in init() where
needed. Adjust the precision in the fly when needed, e.g. while
moving guides or when toggling hard-edge on paint tools. Also pass
an appropriate precision to gimp_tool_push_status_coords(), which
is not always the tool's precision as used for cursor display.
svn path=/trunk/; revision=26681
2008-08-20 Michael Natterer <mitch@gimp.org>
* app/paint/gimpperspectiveclone.[ch]: make
gimp_perspective_clone_get_matrix() static and add
gimp_perspective_clone_set_transform().
* app/tools/gimpperspectiveclonetool.c
(gimp_perspective_clone_tool_mode_notify): use above set_transform()
API instead of poking into the object.
(gimp_perspective_clone_tool_constructor): call
gimp_perspective_clone_tool_mode_notify() to set up things instead
of duplicating code.
svn path=/trunk/; revision=26673
2008-08-20 Sven Neumann <sven@gimp.org>
* app/file/file-save.c (file_save): flush the image when done to
cause the actions to be updated (in particular File->Revert).
svn path=/trunk/; revision=26669
2008-08-19 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-guides.c (gimp_image_find_guide): find
guides
outside the image as well. This complements the change that we
also draw guides outside the image now.
svn path=/trunk/; revision=26665
2008-08-19 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpplugin.[ch] (struct GimpPlugIn)
* app/plug-in/gimppluginprocframe.[ch] (struct GimpPlugInProcFrame):
move the error_handler from the plug-in to the proc-frame.
* app/plug-in/gimppluginprocframe.c
* app/plug-in/gimpplugin-message.c: changed accordingly.
svn path=/trunk/; revision=26661
2008-08-19 Sven Neumann <sven@gimp.org>
Complements the fix for bug #344818:
* libgimpbase/gimpbaseenums.[ch]: added new enum
GimpPDBErrorHandler.
* tools/pdbgen/enums.pl: regenerated.
* app/plug-in/gimpplugin.[ch]: added error_handler to
GimpPlugIn.
* app/plug-in/gimpplugin-message.c
(gimp_plug_in_handle_proc_run):
only display an error message for a failed procedure call if the
plug-in's error-handler is set to
GIMP_PDB_ERROR_HANDLER_INTERNAL.
* tools/pdbgen/pdb/plug_in.pdb: added PDB getter and setter for
the plug-in's error-handler.
* app/pdb/plug-in-cmds.c
* app/pdb/internal-procs.c
* libgimp/gimpenums.c.tail
* libgimp/gimpplugin_pdb.[ch]: regenerated.
* plug-ins/common/file-compressor.c
* plug-ins/file-uri/uri.c: set the error-handler to
GIMP_PDB_ERROR_HANDLER_PLUGIN as these plug-ins are forwarding
the
error with their return values.
svn path=/trunk/; revision=26656
2008-08-17 Sven Neumann <sven@gimp.org>
Next step towards fixing bug #344818:
* app/pdb/gimpprocedure.c (gimp_procedure_execute): if the error
has not already been set, construct one from the error message
that is optionally passed with the return values.
* plug-ins/common/file-png.c: changed to pass an error message
with the return values instead of calling g_message() in case of
an error.
svn path=/trunk/; revision=26620
2008-08-17 Sven Neumann <sven@gimp.org>
* app/plug-in/gimpplugin-progress.c
(gimp_plug_in_progress_cancel_callback): introduced a utility
function to reduce code duplication.
* app/pdb/gimppdb.c (gimp_pdb_execute_procedure_by_name):
changed
to use g_error_new_literal().
svn path=/trunk/; revision=26616
2008-08-17 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_size_allocate): If the image ends up
below or to the right of the viewport top and left edges, and the
image is not centered on a given axis, align the top left image
edge with the top left viewport edge. This is basically the best
we can do without an API for start and end of a window resize
cycle using the mouse.
svn path=/trunk/; revision=26613
2008-08-17 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell.[ch]
(gimp_display_shell_configure_event): When applying the centering
logic we need to know the size of the new canvas, so instead of
having it here, only make sure that this logic is run on the next
canvas size-allocate.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_size_allocate): If the size-allocate
comes from a top level window resize, apply centering logic.
svn path=/trunk/; revision=26611
2008-08-16 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell-scroll.c
(gimp_display_shell_scroll_center_image_on_next_size_allocate):
Explain that this function needs to be used with care since it is
risky.
* app/display/gimpdisplayshell.c
(gimp_display_shell_new)
(gimp_display_shell_fill): Clarify that it is safe to use the
risky function.
(gimp_display_shell_configure_event): Make proper comparisions (<=
not =) and explain that usage of the risky function is safe.
(gimp_display_shell_shrink_wrap): Always call
gimp_display_shell_scroll_center_image() and let size-requests be
handled by GimpDisplayShell::configure_event().
* app/actions/view-commands.c (view_shrink_wrap_cmd_callback): No
need to center anything explicitly any longer.
svn path=/trunk/; revision=26607
2008-08-16 Sven Neumann <sven@gimp.org>
* app/plug-in/gimpplugin-message.c
(gimp_plug_in_handle_proc_run):
removed the term 'PDB' from the user-visible error messages.
svn path=/trunk/; revision=26601
2008-08-16 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_size_allocate): Remove the centering
logic because we do not always want to run it when the canvas size
changes. For example, the canvas size changes if rulers are
toggled on/off.
* app/display/gimpdisplayshell.c
(gimp_display_shell_configure_event): Implement
GtkWidget::configure_event() for the display shell and put the
image centering logic here instead, since this class function is
run when the top level window size changes. Run it only if the
size (not position) of the window changes.
svn path=/trunk/; revision=26599
2008-08-16 Sven Neumann <sven@gimp.org>
* app/pdb/gimppdb.c (gimp_pdb_execute_procedure_by_name):
changed
error message to be similar to the message thrown from
gimp_procedure_validate_args().
svn path=/trunk/; revision=26594
2008-08-16 Sven Neumann <sven@gimp.org>
If a procedure call fails, pass a string describing the error as
the second return value. First step towars fixing bug #344818.
* app/pdb/gimpprocedure.[ch] (gimp_procedure_get_return_values):
added a GError parameter. If it is set, pass the error message
to
the return values.
* app/pdb/gimppdberror.h: added some more error codes.
* app/pdb/gimppdb.c
* app/xcf/xcf.c: pass errors to
gimp_procedure_get_return_values().
* app/plug-in/gimpplugin-message.c
(gimp_plug_in_handle_proc_run):
show a different error message for execution vs. calling errors.
* app/plug-in/gimpplugin-progress.c
(gimp_plug_in_progress_cancel_callback): pass the error
GIMP_PDB_CANCELLED to gimp_procedure_get_return_values().
* app/plug-in/gimppluginmanager-call.[ch]
(gimp_plug_in_manager_call_run): removed the
'destroy_return_vals'
parameter.
* app/plug-in/gimppluginprocedure.c: destroy the return values
here.
* app/plug-in/gimppluginprocframe.c: pass an error to
gimp_procedure_get_return_values().
* tools/pdbgen/app.pl
* tools/pdbgen/pdb/fileops.pdb: generate code that passes the
error to gimp_procedure_get_return_values().
* app/pdb/*-cmds.c: regenerated.
* plug-ins/pygimp/pygimp-pdb.c: extract the error message from
the
return values and pass it to the exception that is thrown.
svn path=/trunk/; revision=26593
2008-08-16 Martin Nordholts <martinn@svn.gnome.org>
* app/actions/view-commands.c (view_shrink_wrap_cmd_callback):
Also handle the case when only the offset is wrong. Not pretty but
simple.
svn path=/trunk/; revision=26592
2008-08-16 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell-scale.c
(gimp_display_shell_scale_viewport_coord_almost_centered): New
function.
(gimp_display_shell_scale): Center the image on zoom also if it is
almost centered. This makes the image centered all the way when
zooming out far away.
svn path=/trunk/; revision=26589