Commit Graph

44505 Commits

Author SHA1 Message Date
Ell 2523808e4a app: add gimp_paint_core_{set_show_all,get_image_pickable}()
GimpPaintCore operates indipendently of a display, and hence needs
to be explictly told when operating in "show all" mode, affecting
the result of paint tools operating in "sample merged" mode.  Add
gimp_paint_core_set_show_all() for that purpose, and call it,
passing the current display's "show all" mode, in GimpPaintTool.
This controls which pickable (the image itself, or its projection)
is used as the sampling source, as per
GimpPaintCore::saved_proj_buffer, and as returned by the new
gimp_paint_core_get_image_pickable() function.
2019-09-06 20:10:30 +03:00
Michael Natterer 6f4122b7b9 Issue #3655 - Cannot edit long lines of metadata (no scroll bar)
Set the crollbar policy to automatic.
2019-09-06 17:34:41 +02:00
Michael Natterer 8ef87b0922 libgimp: fix crash introduced in commit bfe4a2f9
Freeing stuff is good, but freeing twice is not so good.
2019-09-06 17:25:30 +02:00
Massimo Valentini 0a1e9d1190 Issue 2206: Error message when opening "MULTICHANNEL" PSD...
...files (file attached)
2019-09-06 17:25:30 +02:00
Sabri Ünal 7486028ec9 Missing mnemonics on Preferences 2019-09-06 14:24:24 +00:00
Elle Stone 7880711fef Allow full range to Hue-Saturation Lightness slider
Issue #427: Hue-saturation dialog: lightness in 'Master'

For whatever reason that made sense at the time, the current
Hue-Saturation code divides the result of Lightness slider
adjustments by 2, which means the user can't ever move the
Lightness slider to produce a solid white or black image, and
requires multiple iterations if the user wants to make the image
very light or very dark.

This patch just removes the division by 2, thus allowing the full
range of Lightness changes without having to use multiple
iterations.
2019-09-06 10:31:54 +02:00
Michael Natterer b6b8e2c28d Revert the *enums.c part of the last commit
- it was changing generated files
- no dialog-specific mnemonics on generic enum labels
2019-09-06 01:39:36 +02:00
Sabri Ünal 2e766f67d4 Missing mnemonics on several dialogs
paste as brush, paste as pattern, select to new brush, select to new pattern
fill selection outline, fill path, stroke selection, distort, rounded rectangle
indexed color conversion, merge visible layers, new guide, new guide (by percent)
image properties, newsprint, fractal explorer, sample colorize, new layer

metadata editor (just a button), spyroplus (only common buttons)
2019-09-05 22:41:19 +03:00
Michael Natterer 90053e477f devel-docs: update libgimp and libgimpbase docs 2019-09-05 21:27:28 +02:00
Michael Natterer e902871926 libgimpbase: fix docs 2019-09-05 21:27:11 +02:00
Michael Natterer 0123bb3389 libgimp: make sure gimpparamspecs-body.c gets introspected 2019-09-05 21:09:28 +02:00
Michael Natterer bfe4a2f9dd app, libgimp: add _gimp_gp_params_free() to gimpgpparams
which frees exactly what _gimp_value_array_to_gp_params() has
allocated, honors its "full_copy" parameter, and plugs the last
libgimp refactoring leaks I'm currently aware of.
2019-09-05 20:59:57 +02:00
Michael Natterer 8acff481a3 app: add missing procedure argument types to pluginrc
GP_PARAM_DEF_TYPE_ID_ARRAY and GP_PARAM_DEF_TYPE_PARAM_DEF.
2019-09-05 20:29:07 +02:00
Michael Natterer 0f7f322fa5 libgimp: _gimp_gp_params_to_value_array() remove "gboolean full_copy"
With all the GValue and GimpValueArray copying involved, we can't
really make a shallow copy anyway, so don't let the API pretend we
could.
2019-09-05 20:17:22 +02:00
Ell 17f8cff6f6 app: add "show all" support to the bucket-fill tool in "fill similar colors" mode
In the bucket-fill tool, allow using the tool outside the canvas
bounds with "sample merged" active in "fill similar colors" mode,
when the current display is in "show all" mode.  Additionally,
ignore "sample merged" in "fill whole selection" mode, on which it
has no effect.
2019-09-05 18:04:12 +03:00
Ell 99759a57e8 app: in gimp_pickable_contiguous_region_by_seed(), add support for arbitrary buffer extents 2019-09-05 18:04:11 +03:00
Ell 6df0be91ba app: in gimp_gegl_mask_bounds(), add support for arbitrary buffer extents 2019-09-05 18:04:11 +03:00
Ell ddbff867a1 app: fix gimp_gegl_mask_bounds() 2019-09-05 18:04:10 +03:00
Michael Natterer ee86e5630e libgimp: don't leak the GPParam array after writing procedure return values
Annotate all calls to g_free(GPParam*) with /* FIXME leaking object arrays */
because we now do, and it needs to be fixed.
2019-09-05 16:24:09 +02:00
Michael Natterer b812d6241a app, libgimp: make two functions of gimpgpparams private
and remove a "gimp" parameter that is no longer needed.
2019-09-05 16:07:15 +02:00
Michael Natterer 46608393c3 pdb, libgimp: add a HORRIBLE hack to make sure objects arrays don't leak
In the generated libgimp wrappers, we can't return object arrays
from a call to GIMP_VALUES_DUP_OBJECT_ARRAY() because it returns
a deep copy and adds a reference to all objects, which the caller
would have to unref.

But we want a shallow (transfer container) copy because we don't want
libgimp proxy objects to be refed or unrefed by any user code.

Therefore, add a HACK that simply memdup()s and returns the
GimpObjectArray's array memory, and leaves the contained object
pointers alone.
2019-09-05 15:03:14 +02:00
Michael Natterer 3dc354e848 libgimp: _gimp_gp_param_to_value() must ref object array elements
because the subsequent gimp_value_array_unref() unrefs them
again.
2019-09-05 14:40:05 +02:00
Michael Natterer c10f5b2d68 plug-ins: port film and guillotine to objects arrays 2019-09-05 14:39:32 +02:00
Michael Natterer c59eaa5e3d libgimp: fix copy/paste errors in GIMP_VALUES_FOO_OBJECT_ARRAY() 2019-09-05 14:38:20 +02:00
Michael Natterer 3a2f8d422a plug-ins: use the newly added GET_FOO_ID() macros 2019-09-05 13:24:25 +02:00
Michael Natterer 81ee690bbf libgimp: add convenience macros GIMP_VALUES_GET_FOO_ID()
becuse some plug-ins really want the ID for good reasons and not the
object, and code looks so much nicer when the entire list of arguments
is extracted using the macros.
2019-09-05 13:22:37 +02:00
Michael Natterer 0c83f4a96d plug-ins: file-svg: follow gimp_vectors_import_from_file() change 2019-09-05 13:18:30 +02:00
Michael Natterer f764fd0f82 pdb, libgimp: change all generated ID array return values to object arrays
and remove the manual libgimp wrappers which now have the same
signature as the generated functions.
2019-09-05 13:01:00 +02:00
Michael Natterer ccd516c569 libgimpbase: update gimpbase.def 2019-09-05 13:01:00 +02:00
Michael Natterer 34f848bb69 libgimp: actually unref the global GimpPDB and GimpPlugIn instances
in gimp_close().
2019-09-05 13:01:00 +02:00
Michael Natterer 747fce7260 libgimp: gimp_plug_in_destroy_proxies() never checked for too much refs
because we were simply destroying the proxy hashes when the last
procedure is done. Now we run gimp_plug_in_destroy_proxies() with the
right flag from gimp_plug_in_pop_procedure() before destroying the
hashes and get the proper debug warnings.
2019-09-05 13:01:00 +02:00
Michael Natterer 7d3427e91d libgimp: gimp_pdb_run_procedure_array() was leaking proc_run.params 2019-09-05 13:01:00 +02:00
Michael Natterer b4f698e78c libgimp: add object array convenience macros to gimpprocedure-params.h 2019-09-05 13:01:00 +02:00
Michael Natterer 56772d4f4d libgimp: add support for object arrays to gimpgpparams-body.c 2019-09-05 13:01:00 +02:00
Michael Natterer 85591eb799 libgimpbase: add support for arrays of object IDs to gimpprotocol 2019-09-05 13:01:00 +02:00
Michael Natterer 0fefb7e922 libgimpbase: add GimpObjectArray and GimpParamSpecObjectArray 2019-09-05 13:01:00 +02:00
Michael Natterer 738b17063a libgimpbase: add an own struct for GimpStringArray
instead of re-using the GimpArray struct, which was confusing
particularly because of the meaning of the "length" member.
2019-09-05 13:01:00 +02:00
Ell 582930aa61 app: update image-projection priority rect when switching displays
Update the image-projection priority rect to the current display's
viewport when the display becomes active, so that the right region
is rendered first when switching between different displays of the
same image.
2019-09-05 13:55:56 +03:00
Ell 43e91d632e app: make "show canvas boundary" insensitive when "show all" is disabled
... since the canvas boundary is only shown in "show all" mode.
2019-09-05 13:19:52 +03:00
Ell 19817877a5 app: various fixes in gimp_display_shell_set_show_all() 2019-09-05 13:19:51 +03:00
Ell aab9f0ee10 app: fix a few compilation warnings 2019-09-04 20:51:43 +03:00
Ell b7674faef8 app: fix transform-tool preview/bounds in show-all mode when transforming entire image
In the transform tools, when transforming the entire image in show-
all mode, don't crop the preview and the transform bounds to the
size of the canvas.
2019-09-04 20:51:43 +03:00
Ell 32dd8d2d2e app: add support for show-all mode in GimpCanvasPassePartout
Don't clip the outer rect to the size of the canvas in show-all
mode.
2019-09-04 20:51:43 +03:00
Ell 1e621680f1 app: add support for show-all mode in GimpCanvasGrid
Don't crop the grid to the canvas size in show-all mode.
2019-09-04 20:51:43 +03:00
Ell 23617c943b app: add gimp_canvas_item_untransform_viewport()
... which untransforms the viewport from display space to the
item's coordinate space (i.e., scaled and translated image space).
2019-09-04 20:51:43 +03:00
Ell cf3638391d app: add support for color picking in "show all" mode
Add a show_all parameter to gimp_image_pick_color(), which, when
TRUE, allows picking colors outside the canvas bounds in sample-
merged mode.  Forward the display's "show all" mode through this
parameter where applicable (in particular, in the color-picker tool
and the pointer dockable).
2019-09-04 20:51:43 +03:00
Ell 02943e22f6 app: fix gimp_projection_get_pixel_at() for general bounding boxes 2019-09-04 20:51:43 +03:00
Ell da701ffc3a app: fix out-of-bounds rendering when alpha channel is invisible
When the image's alpha channel is invisible, paint regions outside
the image contents as black, instead of using a checkboard pattern.
This is especially notable when viewing the image in "show all"
mode.
2019-09-04 20:51:43 +03:00
Ell 915bdffb5a app: in GimpEditSelectionTool, freeze moved items' previews
... to avoid unnecessarily updating their previews while dragging,
and, in particular, to avoid updating the image's GimpImageViewable
size in show-all mode.
2019-09-04 20:51:43 +03:00
Ell a33f549896 app: show full image contents in GimpNavigationEditor
In GimpNavigation{Editor,View}, show the full image contents when
the corresponding display is in "show all" mode.  Additionally,
when the display's "show canvas boundary" is active, show the
canvas boundary in the navigation view as well.
2019-09-04 20:51:43 +03:00