1. 21 May, 2019 1 commit
    • Ell's avatar
      app: don't show result-size warning when transforming a selection · 1c91578b
      Ell authored
      In gimp_drawable_transform_get_effective_clip(), always return
      RESIZE_CLIP when the input drawable is the image mask, since the
      presence of a selection doesn't matter in this case.  This avoids
      erroneously displaying a result-size warning when transforming the
      selection using any of the selection tools.
      1c91578b
  2. 20 May, 2019 1 commit
    • Ell's avatar
      configure.ac: improve compiler version string escaping · 04f9281b
      Ell authored
      In configure.ac, improve backslash escaping in the compiler
      version string.  Backslashes are currently not properly escaped in
      our Windows builds, leading to spurious (and, in particular, non-
      UTF8) characters in the compiler version string.
      04f9281b
  3. 19 May, 2019 1 commit
    • Ell's avatar
      app: initialize GimpBacktrace earlier on · 853d91b8
      Ell authored
      Initialize GimpBacktrace earlier on in the startup process, so that
      the Windows backend installs the thread-name exception handler
      early enough to catch threads created before app_run() (in
      particular, the GEGL worker threads).
      853d91b8
  4. 15 May, 2019 4 commits
    • Ell's avatar
      app: fix indentation in gimppaintbrush.h · 86a7c053
      Ell authored
      86a7c053
    • Ell's avatar
      app: in GimpPaintbrush, reuse existing paint buffer · edc99531
      Ell authored
      In GimpPaintbrush, avoid refilling the paint buffer at each dab if
      the paint color/pixmap hasn't changed, as gimp_paint_core_paste()
      no longer modifies the buffer since the commit before last.
      
      Additionally, fix color-from-gradient dynamics when the image has a
      profile.
      edc99531
    • Ell's avatar
      app: add gimp_brush_core_get_brush_pixmap() · fcd19a2a
      Ell authored
      In GimpBrushCore, replace the private
      gimp_brush_core_transform_pixmap() function with a public
      gimp_brush_core_get_brush_pixmap() function, which, similarly to
      gimp_brush_core_get_brush_mask(), returns the transformed brush
      pixmap, and can be used by subclasses.
      fcd19a2a
    • Ell's avatar
      app: don't modify paint buffer when pasting to canvas · f24bca51
      Ell authored
      We now have enough machinery in gimppaintcore-loops to avoid
      modifying the paint buffer in gimp_paint_core_paste() in the no-
      applicator case, by using the same set of algorithms as
      gimp_paint_core_replace().  Other than reducing the number of
      different code paths we have, this is both more efficient, and
      allows us to reuse the paint buffer across dabs, as done in the
      following commits.
      
      Implement gimp_paint_core_replace() in terms of
      gimp_paint_core_paste().  We keep the two functions separate, since
      their implementation is still differnet when using an applicator.
      
      Suppress the paint-buffer-modifying algorithms in
      gimppaintcore-loops, but keep them around; using the same logic for
      normal painting as we use for REPLACE painting is possible due to
      the fact that all our current non-REPLACE modes treat alpha values
      and mask values interchangeably.  In the future we might have modes
      that distinguish between alpha and mask values, requiring the old
      algorithms.
      f24bca51
  5. 14 May, 2019 1 commit
  6. 13 May, 2019 1 commit
  7. 12 May, 2019 1 commit
  8. 11 May, 2019 2 commits
  9. 10 May, 2019 1 commit
  10. 09 May, 2019 4 commits
  11. 08 May, 2019 7 commits
  12. 07 May, 2019 2 commits
  13. 06 May, 2019 1 commit
    • Jehan's avatar
      plug-ins: follow the assigned profile TRC. · 417f2c87
      Jehan authored
      GIMP should not convert assigned profile to sRGB just because we stored
      as linear on the XCF. In other words, we should not look at the image
      precision to decide whether to export as linear (previously only 8-bit
      linear images), but at the profile TRC. There are basically 3 cases:
      (1) We don't save a profile, then convert to sRGB whatever the source
      precision (because readers would assume sRGB for a no-profile jpeg).
      (2) We save the default profiles: convert to sRGB because it's usually
      a better choice for 8-bit formats and even working at 32-bit float
      *linear* doesn't mean you want to export as 8-bit int *linear*. As the
      image creator made no explicit export choice, we make an acceptable
      default one.
      (3) We save an explicitly assigned profile: keep the profile TRC, don't
      convert!
      
      Note that this apparently won't work perfectly right now, as GIMP
      replaces the original TRC with the linear default TRC when converting to
      linear. So the expected TRC is lost in such case when you have not
      explicitly reset the correct profile. Yet this is on GIMP side and this
      part of the issue should be fixed with the space invasion merge. For
      now, this is how the plug-in should work.
      
      This is based on my late discussion with Ell. Please everyone, and Ell
      especially, review! :-)
      
      (cherry picked from commit c5f7bac2)
      417f2c87
  14. 05 May, 2019 4 commits
  15. 01 May, 2019 4 commits
  16. 30 Apr, 2019 3 commits
    • Ell's avatar
      Issue #3306 - Memory leak using Crop tool · 84e183e5
      Ell authored
      In gimp_canvas_passe_partout_get_extents(), free the inner region
      after XORing it with the outer region.
      84e183e5
    • Ell's avatar
      Issue #3304 - Invalid write when halting filter tool with controller · 068df34a
      Ell authored
      In GimpFilterTool, properly clean up the controller's widget weak-
      pointer and signal-handlers upon destruction, to avoid invalid
      memory access when the widget is destroyed, if the widget outlives
      the controller.
      068df34a
    • Ell's avatar
      app: in gimp-gegl-nodes, set underlying operation · 928e5957
      Ell authored
      In the vairous gimp_gegl_create_foo_node() functions, set the
      parent node's underlying operation node, so that
      gimp_gegl_apply_cached_operation() avoids duplicating the source
      buffer when applying these nodes (all underlying operations are
      currently point ops.)
      928e5957
  17. 29 Apr, 2019 2 commits