1. 16 Jun, 2018 3 commits
    • Jehan's avatar
      m4macros, plug-ins: run more accurately the "python2" interpreter. · 03ea9cac
      Jehan authored
      Our configure test checks the presence of a Python2, but then uses
      "python" as interpreter, which is a problem nowadays as the default
      python is set to be Python 3 on some distributions (and this will be
      more and more the case). So GIMP may end up trying to run our plug-ins
      through Python 3 (which would fail) even if Python 2 is present.
      Now AM_PATH_PYTHON2() m4 macro will set $PYTHON to a more accurate
      Python version as priority.
      
      Similarly let's use "python2" in the binfmt string for extension search.
      03ea9cac
    • Jehan's avatar
      app: gimp_interpreter_db_add_extension() should check $PATH if needed. · 6080178a
      Jehan authored
      So basically our binfmt set for Python simply never worked since we just
      set 'python' and not a full path, but current code was not looking in
      the $PATH environment. This was dead code. Now it's fixed.
      6080178a
    • Jehan's avatar
      app: actually resolve the interpreter through extension as last resort. · 8509117f
      Jehan authored
      Current code of gimp_interpreter_db_resolve() was only resolving the
      interpreter by the file extension when the file could not be opened for
      reading or if it was empty/coult not be read. This basically made this
      test completely useless.
      Let's fix this. Now it will be run all the time, but simply at the end,
      if shebang and magic failed.
      8509117f
  2. 15 Jun, 2018 8 commits
    • Ell's avatar
      app: fix scaling around center in scale tool; avoid negative width/height · d6792c97
      Ell authored
      In GimpScaleTool, fix scaling around the center-point, and make
      sure the width and height are always >= 1 when updating the
      transformation in response to a widget change.
      
      (cherry picked from commit 1516bfc1)
      d6792c97
    • Ell's avatar
      app: clean up GimpTransformGridTool; adapt subclasses · c7895c97
      Ell authored
      Get rid of GimpTransformGridTool::recalc_matrix() and
      gimp_transform_grid_tool_recalc_matrix(), and have
      GimpTransformGridTool and its subclasses use
      GimpTransformTool::recalc_matrix() and
      gimp_transform_tool_recalc_matrix() directly instead.
      
      In order to break the GimpToolWidget::changed/
      GimpTransformTool::recalc_matrix() loop, add a
      GimpTransformGridTool::update_widget() vfunc, which subclasses
      should override to update their tool-widget (instead of doing this
      in ::recalc_matrix()), and ::widget_changed(), which is called when
      the tool-widget changes (and which subclasses should override
      instead of connecting to the tool-widget's "changed" signal
      directly.)  GimpTransformGridTool calls these functions as
      necessary, instead of relying on extra parameters passed to
      recalc_matrix().
      
      Adapt all the direct and indirect subclasses of
      GimpTransformGridTool to the change.
      
      (cherry picked from commit 6a3fc6c1)
      c7895c97
    • Jehan's avatar
      Issue #248: Python console doesn't support input()/raw_input(). · 130ef5ce
      Jehan authored
      As noted by Massimo, we can just make the argument of raw_input() an
      optional argument.
      
      Also adding a modal implementation for input() so that it doesn't lock
      the Python console waiting from input from the plug-in stdin. As noted
      in Python doc, input() is equivalent to `eval(raw_input(prompt))`.
      Not all that safe, but in the end, it is the developer's responsibility.
      130ef5ce
    • Jehan's avatar
      configure, tools: actually use GIMP_PKGCONFIG_VERSION and... · b3cf7abd
      Jehan authored
      ... GIMP_TOOL_VERSION rather than hardcoding versions.
      
      Mostly cherry picked from commit 276d9b60
      except pkg-config still checks gtk+-2.0 (not 3.0) on gimp-2-10 branch.
      b3cf7abd
    • Ell's avatar
      Issue #1624 - Crashes when using Scissor Select Tool · 387cc35c
      Ell authored
      In GimpTool, always clear tool->drawable upon halting, even for
      tools that don't use it explicitly.
      
      GimpTool sets tool->drawable in its default button_press()
      implementation, and we potentially access it in
      gimp_display_shell_initialize_tool(), so failing to clear it when
      halting the tool may leave it as a dangling pointer, which can
      result in a segfault when trying to initialize the tool in the
      above function.  In particular, this happens with the iscissors
      tool.
      
      (cherry picked from commit 58c96f59)
      387cc35c
    • Simon Mueller's avatar
      plug-ins: use g_fopen(filename, "w+b")... · aac95860
      Simon Mueller authored
      ...because g_fopen(filename, "wb+") fails on Windows.
      
      (cherry picked from commit 541f730f)
      aac95860
    • Michael Schumacher's avatar
      plug-ins: use g_fopen(filename, "w+b") instead of "wb+" to fix SGI format... · 73c67d96
      Michael Schumacher authored
      plug-ins: use g_fopen(filename, "w+b") instead of "wb+" to fix SGI format export on the Microsoft Windows platforms
      
      (cherry picked from commit c93727e7)
      73c67d96
    • Ell's avatar
      Issue #1646 - Transform preview looks wrong with selection · 32993ab1
      Ell authored
      In GimpCanvasTransformPreview, when the image mask is not empty,
      make sure to align it with the drawable using a gegl:translate
      node, before combining both at the gegl:opacity node.  Otherwise,
      the mask is applied at the wrong offset when the drawable's offset
      is not (0, 0).
      
      (cherry picked from commit d3a3c353)
      32993ab1
  3. 14 Jun, 2018 11 commits
    • Ell's avatar
      Issue #1613 - foreground select tool raises a CRITICAL when committing · e486537c
      Ell authored
      Make gimp_free_select_tool_halt() protected, and call it in
      gimp_foreground_select_tool_set_trimap(), so that the free-select
      subobject of the foreground-select tool is properly shut down
      before switching to trimap mode.  In particular, this clears the
      free-select tool widget at the right point; failing to do this
      leads to CRITICALs later on.
      
      (cherry picked from commit e1573323)
      e486537c
    • Ell's avatar
      Issue #1602 - Numeric selection size wrong after switching tools · 08294f9e
      Ell authored
      In GimpToolRectangle, call gimp_tool_rectangle_update_options()
      when the "[xy][12]" properties change, so that the "x", "y",
      "width", and "height" properties are updated accordingly.
      
      In particular, we set these properties when committing an empty
      rectangle select tool, to init the rectangle to the current
      selection bounds, and this call is necessary so that the "x", "y",
      "width", and "height" tool options are properly updated as well.
      
      (cherry picked from commit 47b7e7be)
      08294f9e
    • Jehan's avatar
      INSTALL: libheif must also be built with libx265. · 1a14f7e8
      Jehan authored
      (cherry picked from commit 33749491)
      1a14f7e8
    • Jehan's avatar
      icons: clean the symbolic vector file. · 8ede025c
      Jehan authored
      All icons are now in the file.
      
      (cherry picked from commit 3096fd29)
      8ede025c
    • Jehan's avatar
      icons: fix symbolic icons. · 98763dde
      Jehan authored
      With the symbolic-awareness of GTK+, vector icons are recolored (using
      fg, success, warning and error colors). Unfortunately it was also
      recoloring some rectangles with neither fill nor stroke, which were
      using only to get appropriate icon size (these icons were therefore
      displayed as just a square).
      
      I made a quick pass in our icons to "fix" these. I expect I may have
      missed some icons, or at the opposite, I may have broken other icons by
      removing rectangles which should not have been removed. If you find any
      such icon, please fix.
      Also some icons do not look quite right just now. We will have to create
      new guidelines on how to make symbolic icons and fix/redesign some, I
      guess.
      
      (cherry picked from commit 0c3659c5)
      98763dde
    • Jehan's avatar
      desktop: start a <release> tag for 2.10.4. · dc8f44c6
      Jehan authored
      The 2 major changes seem to be the much-awaited font loading in
      background, and this new "Auto straighten" option on Measurement tool.
      
      Please everyone, feel free to tweak the release description while it is
      still commented out. Once we remove the comment tags, it will be
      submitted for translation.
      dc8f44c6
    • Anders Jonsson's avatar
      Update Swedish translation · 7412507c
      Anders Jonsson authored
      7412507c
    • Ell's avatar
      app: make sure image colormaps always have at least one color · 5e53d06f
      Ell authored
      In gimp_image_set_colormap(), make sure the image's colormap always
      has at least one color -- babl palette formats must have at least
      one color.
      
      If the function is called with 0 colors, use black.  We still need
      to support this case, in particular, since existing XCFs may have
      an empty colormap, and since plug-ins can call
      gimp-image-set-colormap with 0 colors.
      
      (cherry picked from commit c16c68e6)
      5e53d06f
    • Jehan's avatar
      Revert "Issue #1612: Symmetry Painting dock needs a design tweak." · f6347572
      Jehan authored
      This reverts commit 55c5ebea.
      Argh "valign" is a GTK+3 property. And actually testing now, I realize
      this bug was only in the GIMP 3 codebase.
      f6347572
    • Jehan's avatar
      plug-ins: add busy-dialog plug-in in plugin-defs.pl. · 5b628d42
      Jehan authored
      Introduced in commit 032e95fa, Makefile.am was apparently directly
      edited instead of plugin-defs.pl. This also fixes a typo:
      s/bust-dialog/busy-dialog/
      
      (cherry picked from commit 4117c986)
      5b628d42
    • Jehan's avatar
      Issue #1612: Symmetry Painting dock needs a design tweak. · 55c5ebea
      Jehan authored
      Make symmetry painting dock top-aligned.
      
      (cherry picked from commit 035cef69)
      55c5ebea
  4. 13 Jun, 2018 2 commits
  5. 12 Jun, 2018 6 commits
  6. 10 Jun, 2018 8 commits
  7. 09 Jun, 2018 2 commits
    • Ell's avatar
      app: derive GimpMeasureTool from GimpTransformTool · eccabd9a
      Ell authored
      Derive GimpMeasureTool from GimpTransformTool (and
      GimpMeasureOptions from GimpTransformOptions), so that we can reuse
      GimpTransformTool's logic for the "straighten" function.  This
      simplifies the code, aligns the measure tool with the rest of the
      transform tools in terms of transform-related options (it can now
      transform selections and paths, in addition to layers, and the
      resampling method and clipping behavior are adjustable,) and fixes
      straightening of layer groups.
      
      Rename the function from "auto straighten" to just "straighten".
      
      Don't resize the canvas after straightening.  Since we only
      transform the active layer, and not the entire image, resizing the
      canvas doesn't make much sense.
      
      When in 3-point mode, rotate the second point toward the third
      point, rather than toward the x-axis.
      
      (cherry picked from commit b0cf2e43)
      eccabd9a
    • Ell's avatar
      app: add GimpTransformGridTool; derive most transform tools from it · 340c4a23
      Ell authored
      While most of our transform tools use an interactive transform
      grid, and have similar behavior, the flip tool is an odd one out.
      The new "auto straighten" function of the measure tool introduces
      another tool that performs transformations, while not behaving like
      the rest of the transform tools.
      
      Factor out the parts of GimpTransformTool that handle user
      interaction into GimpTransformGridTool (with corresponding
      GimpTransformGridOptions, and GimpTransformGridToolUndo), and only
      leave the basic transform functionality and options in
      GimpTransformTool (and GimpTransformOptions).
      
      Derive all the transform tools (and transform-tool base classes)
      that previously derived from GimpTransformTool, from
      GimpTransformGridTool.  The one exception is GimpFlipTool, which
      still derives from GimpTransformTool directly.  The next commit
      will derive GimpMeasureTool from GimpTransformTool as well.
      340c4a23