1. 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.
    • Jehan's avatar
      NEWS: keep up-to-date. · c44f5a2f
      Jehan authored
    • 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!
    • 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).
    • 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.
    • 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.
  2. 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
    • 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
    • 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.
    • 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.
  3. 18 Mar, 2018 9 commits
  4. 17 Mar, 2018 8 commits
  5. 16 Mar, 2018 9 commits
    • Jehan's avatar
      plug-ins: coding style cleaning. · f2c80e18
      Jehan authored
      Trailing whitespaces here and there, alignment issues, and so on…
      Also get rid of an unused variable.
    • Darshan kadu's avatar
      plug-ins: 16/32 bit JPEG2000 support. · a9a3a67c
      Darshan kadu authored
    • Jehan's avatar
      plug-ins: properly check widget class holding tag data. · 4fdf301d
      Jehan authored
      Some tag data is hold in GtkEntry, other in GtkTextView, which are not
      parent to each other. Previous checks were wrong and resulted in
      "invalid cast from 'GtkEntry' to 'GtkTextView'" WARNINGs (followed by
      many CRITICALs because of this first error).
      Also properly free the data returned by gtk_text_buffer_get_text() which
      is allocated (unlike strings returned by gtk_entry_get_text() which must
      not be freed).
    • Jehan's avatar
      app: return from gimp_display_shell_space_pressed() immediately when... · 8aaf77ba
      Jehan authored
      ... scrolling in progress.
      In particular, this could happen while panning with mouse middle click
      and hitting space. This space should simply be ignored.
    • Ell's avatar
      libgimpcolor: fix gimp_color_profile_get_lcms_format() for premul formats · 9c663a65
      Ell authored
      It doesn't look like LCMS supports premultiplied alpha formats, so
      we must convert them to the corresponding non-premultiplied formats
    • Jehan's avatar
      Bug 779942 - Make GimpPickButton honor monitor profile. · 6c830092
      Jehan authored
      Quartz/macOS implementation for the color picker.
      This is untested but I am trying to advance our 2.10 blockers by
      implementing the base code for this feature. Please anyone with macOS
      machine access, review and fix if needed!
    • Jehan's avatar
      Bug 724692 - Canvas rotation stuck with specific order of actions. · b279c2d2
      Jehan authored
      The bug was affecting actually both canvas rotation and panning when
      done with space key. If the first mouse button was also clicked, then
      released after the space key, we ended up in some stuck action. It could
      only be unstuck by hitting/releasing space again.
      I am actually unsure that this was not originally done on purpose,
      especially since the code has these 2 status variables space_pressed and
      space_release_pending, but really apart from looking at this code, the
      behavior just looks very buggy and impracticable.
      The new behavior is to just stop the canvas panning/rotation as soon as
      space is released (which is also how it is documented in our manual, and
      how everyone seems to use the feature). I only kept the variable
      space_release_pending, which I use as was used space_pressed before.
    • Ell's avatar
      app: throttle GimpCanvasProgress updates · dc185204
      Ell authored
      Avoid redrawing GimpCanvasProgress items upon
      GimpProgress::set_value() if a minimal amount of time hasn't passed
      since the last call.  This notably improves performance of
      frequently-updated GimpCanvasProgress items.
    • Ell's avatar
      app: fix indentation in gimpcanvasprogress.c · 1cc90e52
      Ell authored
  6. 15 Mar, 2018 4 commits
    • Ell's avatar
    • Jehan's avatar
      libgimp, pdb: some generated files which were not in previous commits. · c5a0189b
      Jehan authored
      It's weird. I didn't see these when I added the GimpDistanceMetric enum
      type. Not sure why. Adding these now.
    • Jehan's avatar
      app: don't sync Blend tool's gradient-repeat property with gimp:blend... · c403e472
      Jehan authored
      ... when gradient_type >= GIMP_GRADIENT_SHAPEBURST_ANGULAR.
      Our current GUI code for the Blend tool options disables the "Repeat"
      widget with any of the shaped and spiral gradient types, which means (I
      assume) no repeat mode is allowed on these gradients. Nevertheless it
      was possible to change the repeat mode in another gradient type, then
      switch to one of these and get the repeat processed even though the GUI
      shows insensitive.
      I could simply reset the repeat mode to GIMP_REPEAT_NONE when setting
      one of these gradient types, but I think you'd want the repeat to stay
      at its value (being insensitive is enough to mean whatever value is set
      is not taken into account). So instead, I just unsync this specific
      property when appropriate.
      Note also I don't do this in the gimp:blend operation code because I am
      not sure this specific behavior is meant to be a generic blend behavior
      or just relative to the tool (render of the shaped gradients is barely
      different with a repeat, but there is still a difference).
    • Jehan's avatar
      app: add "distance-metric" property to the Blend tool options. · 87330a77
      Jehan authored
      It seems old blend tool (from GIMP 2.8) was using manhattan distance,
      whereas the new one uses euclidean. I guess there must be use cases for
      both. In any case, it is a good idea to simply propose the option since
      the property exists in the "gegl:distance-transform" operation.
      See also bug 781621.