1. 23 Mar, 2018 9 commits
  2. 22 Mar, 2018 7 commits
    • Jehan's avatar
      app: output a dialog to recover images salvaged after a crash. · 25af765f
      Jehan authored
      Since commit d916fedf, GIMP has had the hidden feature to salvage
      images (if possible) during a crash into a backup folder. This commit
      finishes the feature by opening a dialog proposing to try and recover
      the salvaged images.
      This is not perfect yet since it doesn't "remember" the XCF path (in
      case it was a previously saved image). The images open as new unsaved
      and dirty images, but directly from the contents at crash time. For now,
      it is up to people to figure out what they correspond to, if relevant.
      25af765f
    • Ell's avatar
      Bug 793734 - White alpha border after upscaling · 289ecebd
      Ell authored
      In gimp_gegl_apply_scale(), use a CLAMP abyss policy for the scale
      op, to avoid leaking transparency into the image when scaling
      drawables.
      
      Note that this (intentionally) only affects whole-image/layer
      scaling, and not scaling done using any of the transform tools.
      289ecebd
    • Ell's avatar
      app: crop input to output rect in channel ops · ab4b7ab3
      Ell authored
      In gimp_gegl_apply_{border,grow,shrink,flood}(), which are used
      by the corresponding channel functions, pass crop_input = TRUE to
      gimp_gegl_apply_operation(), to clip the input to the output rect.
      
      These operations process the entire input in one go, regardless of
      the requested output region; however, the channel functions
      calculate the output region according to the known channel bounds,
      hence clipping the input to these bounds doesn't affect discard any
      information, while avoiding unnecessary work.  In particular, this
      makes the corresponding operations on small selections in big images
      much faster.
      ab4b7ab3
    • Ell's avatar
      app: add crop_input parameter to gimp_gegl_apply_operation() · e1b1611e
      Ell authored
      Add a crop_input parameter to gimp_gegl_apply_[cached_]operation().
      When TRUE, the functions crop the op's input to the destination
      rect.  This is particularly useful for functions that process the
      entire input in one go (by means of get_cached_region()).  See the
      next commit.
      
      Pass crop_input = FALSE at all call sites for now, to keep the
      current behavior.
      e1b1611e
    • Jehan's avatar
      app, NEWS: metadata export settings are now ON by default. · 45802855
      Jehan authored
      After many discussions, it has been decided to export the metadata by
      default since it seems to be what many people would expect and they
      would consider they "lost" metadata (especially if they overwrite their
      original). I don't entirely agree since privacy (particularly if you are
      not aware of metadata and information they may contain) is also an issue
      but not many seem to agree with me.
      So here it is! All metadata now exported as a default!
      45802855
    • Jehan's avatar
      autogen: add support for recent automake 1.16. · 848b89af
      Jehan authored
      848b89af
    • Jehan's avatar
      app: only show FATAL errors by default for stable releases. · f4972878
      Jehan authored
      The debug dialog is awesome and extremely helpful, but I realize it may
      be a better default experience on *stable* to raise it only in case of
      crashes. CRITICAL are bad and should be fixed, but sometimes their
      consequence is actually not visible except for this dialog, and people
      on stable builds may prefer not to see this dialog. Also we will likely
      get a lot of duplicates for the same bugs once everybody has this by
      default, which will be very annoying to attend to, unless we had
      automation (which we don't right now).
      The option is still available in preferences anyway so people really
      interested in helping can activate the option for CRITICAL and even
      WARNING anyway, even on stable releases.
      f4972878
  3. 21 Mar, 2018 1 commit
  4. 20 Mar, 2018 6 commits
    • Michael Natterer's avatar
      Bug 794378 - GIMP crashed while I was moving the image window · 9a365eaf
      Michael Natterer authored
      Use a weak pointer in GimpToolGui to not keep a dangling
      private->viewable around.
      9a365eaf
    • Jehan's avatar
      NEWS: keep up-to-date. · c44f5a2f
      Jehan authored
      c44f5a2f
    • Jehan's avatar
      plug-ins: rename s/YUV/YCbCr/ s/eYCC/xvYCC/ s/RGB/sRGB/. · 34b68a2c
      Jehan authored
      Exchanging with OpenJPEG developers and searching more on the topic, it
      seems that YUV is more often refered to as YCbCr. Wikipedia says:
      
      > typically the terms YCbCr and YUV are used interchangeably, leading to
      > some confusion. The main difference is that YUV is analog and YCbCr is
      > digital
      
      As for eYCC, I am told this is extended YCC. It seems this is refered as
      xvYCC (I really can't find much under "eYCC"). So let's rename it too.
      
      Hopefully I made no mistakes!
      34b68a2c
    • Jehan's avatar
      plug-ins: add a color space parameter to file-j2k-load(). · 5732b7ab
      Jehan authored
      JPEG 2000 codestream doesn't have a header and guessing the color space
      in particular is not foolproof (especially when 3 or 4 components, which
      can be many spaces). Therefore the need of a parameter on the API.
      
      Note that JP2 images should always have the color space information. In
      interactive mode, I try to be a bit flexible to salvage broken JP2 with
      no color space information in the header, but I am not adding a
      parameter in file-jp2-load() (on purpose, since we are not going to add
      in the API a parameter for a case not supposed to happen with properly
      encoded files).
      5732b7ab
    • Jehan's avatar
      plug-ins: open a dialog to select color space of JPEG 2000 codestream. · 7e52c483
      Jehan authored
      JPEG 2000 codestream (.j2k/.j2c) are only compressed code stream data,
      without header. In particular we don't have color information, such as
      the color space. So we need to open a dialog asking to set the color
      space in interactive mode.
      
      Note: according to OpenJPEG developers, a JP2 image (not codestream)
      should always have a color space defined in its header. But just to be
      flexible, the same dialog may get raised as well if we try to load a JP2
      with no valid color space defined in header and no ICC profile embedded.
      Maybe if such a thing happened, it means the image is corrupt, yet we
      may as well try and salvage it anyway.
      
      Note 2: I also removed a weird test which was setting some images as
      being YUV color space by mistake. This actually fixes bug 794413 as a
      side effect.
      7e52c483
    • Jehan's avatar
      plug-ins: .jpc is another known extension for JPEG 2000 codestream. · 5e5fa4a0
      Jehan authored
      Even though I haven't seen working samples with this extension,
      according to some references, this is a common extension for compressed
      JPEG 2000 code stream. Also our old plug-in was listing this extension,
      so let's do so now as well.
      
      To this day, the only 2 extensions we used to list in the JasPer-based
      plug-in and not in the OpenJPEG one are .jpf and .jpx (JPEG 2000 Part-2)
      since OpenJPEG does not have support yet. But actually I think the old
      plug-in may have simply been "lying" since JasPer website says the
      library is meant to implement JPEG-2000 Part-1 standard.
      So I believe we are now on par (and even better on many aspects) with
      the former plug-in implementation based on libjasper.
      5e5fa4a0
  5. 19 Mar, 2018 4 commits
    • Michael Natterer's avatar
      Bug 792686 - Colormap widget not updated when adding entry · 28d9e43f
      Michael Natterer authored
      gimp_image_add_colormap_entry(): increment private->n_colors *before*
      calling gimp_image_colormap_set_palette_entry() so it actually adds an
      entry.
      28d9e43f
    • Michael Natterer's avatar
      Bug 783680 - Allow to hide color models in GimpColorScales · 8447e775
      Michael Natterer authored
      Redo the entire thing again:
      
      - Rename the values of enum GimpColorSelectorModel to include "MODEL"
      - Change GimpColorSelector API from set_model() to set_model_visible()
        so visibility of each model can be toggled individually and is not
        exclusive any longer
      - The GUI is back to what it was before, except that the "GIMP" page
        now honors the model visibility and has a resonable minimum height
      8447e775
    • Jehan's avatar
      build: update flatpak builds with latest changes. · 8f71aeda
      Jehan authored
      Untested. Hopefully should build.
      Also bump the GNOME runtime to the latest version.
      8f71aeda
    • Jehan's avatar
      Bug 793777 - CRITICALs on focus change in MWM with stylus. · 845eb522
      Jehan authored
      Focus change events were expecting the current tool control to be
      inactive, which was the case most of the time. Yet with stylus, the
      canvas was sometimes receiving GDK_BUTTON_PRESS events before
      GDK_FOCUS_CHANGE. In particular the canvas was receiving a button press
      before the focus out, then button release and focus in. Therefore by the
      time the focus out event happens, the tool control is active, which
      broke a few calls.
      Therefore I add a few checks and returns immediately when
      gimp_tool_control_is_active() return TRUE, especially since we also run
      gimp_display_shell_update_focus() calls after a button press anyway so
      the state should already be consistent.
      845eb522
  6. 18 Mar, 2018 9 commits
  7. 17 Mar, 2018 4 commits