paint_core->start_coords is in fact the last stroke's endpoint and
only used for storing it in GimpPaintCoreUndo, so the last endpoint
can be resotred for straight-line painting after an undo. Make the
code actually doing that.
(cherry picked from commit d1795ac204)
Make sure an indexed image always has a colormap. This was the case
before, except one could set a NULL colormap via the PDB.
Add gimp_image_unset_colormap(), and make gimp_image_set_colormap()
never set the colormap to NULL, even if NULL is passed. Change the
only places where actual unsetting makes sense to use unset().
Make some GUI places deal gracefully with palettes/colormaps with zero
entries.
(cherry picked from commit 37372555e5)
Merge all color-selector-wheel changes from master, which turns the
thing into a properly reqizable widget and fixes the issues with left
dock resizability.
Small fix for the last commit: set a silly small initial size request
on the wrap_box so it doesn't initially request too much and breaks
dock layout deserialization.
(cherry picked from commit a2334b0b15)
gimp_container_grid_view_viewport_resized(): set the wrap_box'
required width to just one cell_width, not cell_width * columns. This
way it can shrink also when attached to a toolbox dock. It remains
unclear why it could nicely shrink in all other dock columns.
(cherry picked from commit 6a5e37b68d)
Shells can now travel from one window to another. Canvas position code
should therefore not keep track of the image window for a specific shell
but must use whatever is the current window for this shell (even though
it may be a different one before and after the size-allocate).
This also partly fixes some positioning issue during mode switch.
(cherry picked from commit 7e513faa50)
Small fix from commit 2697b29. This previous commit was working well, but
implied calling this method as many time as there are opened shells,
whereas once is enough.
(cherry picked from commit 8ef5fca062)
during an image rescale, while spinning the main-loop,
layer-groups preview generation used to start before their
layers were fully rescaled, so it tried to access tiles that
were not yet there
(cherry picked from commit 3cc923d5a5)
opening many images from the command line used to print:
(gimp-2.9:): GLib-GObject-CRITICAL **: g_object_add_weak_pointer:
assertion 'G_IS_OBJECT (object)' failed
because only the first finds the empty display
(cherry picked from commit 8a7d5c9d16)
The current documentation have users think the argument layer is going
to be cropped, whereas it actually only serves as a base for determining
cropping extents. The active layer is the one to be cropped.
Slightly more complete documentation explaining this.
GIMP's "exit" signal was emitted before the handler was connected.
Don't start loading command line images or batch processing before
app_exit_after_callback() is connected. Make sure we don't use
dangling main loop pointers or try to stop a non-running main loop.
(cherry picked from commit 09682d62ae)
...if layer bounds are changed.
Call gimp_tool_control_set_preserve (tool->control, FALSE) so it is
stopped when the drawable changes.
(cherry picked from commit 2e8ef97c13)
pdb: Need to gimp_vectors_freeze()/thaw() around stroke modifications
so the vector's preview and the cached GimpBezierDesc are invalidated.
(cherry picked from commit 64887fe06c)
The previous code did not consider that a transformation
described by a matrix with non integer values in the 3rd
column or by a non affine matrix requires interpolation
and make floating point arithmetic rounding errors
consistent with INTERPOLATION_NONE
if the gradient itself isn't changed.
GimpData: implement GimpObject::name_changed() and set the "dirty"
flag to TRUE. Don't set dirty in GimpData::dirty()'s default impl
because that calls gimp_object_name_changed() anyway.
(cherry picked from commit 5280a02ed8)
When the accelerator is NULL, gtk_action_group_add_action_with_accel()
would use the default one for the stock icon used. And GTK_STOCK_CLOSE
default accelerator is "<Primary>w" which we already use for view-close.
We must use empty string when we want no default accelerator.
(cherry picked from commit 28669b07d1)
view-close was closing also toolbox docks if they had the focus. Now
this action will close only the current active image view (if any),
whatever the window which has actual focus.
Additionally all other view actions are available on dock focus.
(cherry picked from commit 2ad8634c06)