1. 09 Oct, 2017 1 commit
  2. 08 Oct, 2017 1 commit
    • Jehan's avatar
      Bug 787457 - Paint brush settings display system language (e.g. zh_TW) · d01e182c
      Jehan authored
      ... and ignore language setting (e.g. en_US).
      The problem came from the fact that these settings names are class
      properties of GimpPaintOptions/GimpContext which is first instanciated
      when the Gimp object is created. This unfortunately happened before
      language_init() since we needed these objects when loading gimprc
      (making inversion of calls rather complicated).
      Therefore they were localized with the system language, not the
      configured language.
      The solution was to create a very simple object GimpLangRC which
      implements the GimpConfig interface, for sole purpose to read the
      language from `gimprc` in a first pass. gimp_load_config() will still
      happen later as a second pass to properly load the rest of the
  3. 04 Oct, 2017 5 commits
    • Jehan's avatar
      app: also make options_box into a GWeakRef. · 55083baa
      Jehan authored
      While I am at it, let's spread the improvement to options_box which was
      also a weak pointer with g_object_add_weak_pointer(). Let's make it
      rather a GWeakRef for the same reason as I did options_gui.
    • Jehan's avatar
      app: use GWeakRef instead of g_object_add_weak_pointer(). · 7be856a4
      Jehan authored
      Other than multi-threading (which here is not the problem), using
      GWeakRef has the other advantage that it makes the type of pointer
      obvious, hence avoiding the kind of errors as fixed in commit 12df7960.
      One can't just change the pointer value directly, and has to use
      g_weak_ref_set(), so such problem won't happen again.
    • Jehan's avatar
      Bug 788442 - Gimp crashes not using GEGL Operation tool. · 12df7960
      Jehan authored
      Properly set the pointer as a weak pointer, same as in GimpOperationTool
      parent class, to make sure it is resetted to NULL upon destruction.
    • Ell's avatar
      app: use a single size entry for the pos/size props of GimpRectangleOptions · e06a18b9
      Ell authored
      Repalce the two separate size entries, used for the position and
      size properties of GimpRectangleOptions, with a single size entry
      with two fields, so that they accept ratio expressions.  Note that
      this doesn't change the UI.
    • Ell's avatar
      app: in xcf-load, avoid writing buffer data for empty tiles · 0ae7acd5
      Ell authored
      When loading tile data, avoid copying the data into the GEGL
      buffer when the tile is empty (i.e., all its bytes are 0), so that
      GEGL doesn't allocate memory for it unnecessarily.
  4. 03 Oct, 2017 4 commits
  5. 01 Oct, 2017 5 commits
  6. 28 Sep, 2017 1 commit
  7. 25 Sep, 2017 1 commit
    • Jehan's avatar
      Bug 787951 - improve help system. · c2330f00
      Jehan authored
      When the manual in your current language is not installed, yet other
      manuals are available, the help dialog will now propose either to read
      the manual online (as was already the case) or to select a manual in
      another language instead. This is even more important since we don't
      have as many manuals as localizations of GIMP. Therefore if one took the
      explicit step to install a manual in another language, it makes sense
      that means one may know the alternative language. As an example, we have
      3 Chinese localizations (zh_CN|TW|HK) but only a zh_CN manual. I could
      definitely imagine someone with a zh_HK GUI to go for the zh_CN manual
      as a fallback. Or other languages even, whatever!
      This is a first step. Right now once one chose the alternative help
      language, it is not possible to reset it yet (except by editing
      "help-locales" in gimprc). The next step will be to add the settings in
      Help System preferences.
  8. 20 Sep, 2017 1 commit
  9. 19 Sep, 2017 1 commit
    • Ell's avatar
      app: avoid id. matrix short-circuit in trans. tool when ... · ee3ecb78
      Ell authored
      ... the matrix is not actually used
      Don't abort transform-tool commits when the transformation matrix
      is the identity, for transform tools that don't calculate a
      transformation matrix to begin with (i.e., the flip tool),
      otherwise they do nothing.
  10. 18 Sep, 2017 1 commit
  11. 16 Sep, 2017 3 commits
  12. 13 Sep, 2017 2 commits
  13. 11 Sep, 2017 1 commit
  14. 09 Sep, 2017 2 commits
  15. 08 Sep, 2017 1 commit
    • Ell's avatar
      app: in GimpCursorView, move cursor info update to an idle function · 1773cd91
      Ell authored
      Updating the cursor information involves sampling the active image/
      drawable, which can be expensive, especially if there are filters
      active that also respond to cursor motion, e.g., while using the
      warp tool.
      Move the actual updating to an idle function.  This dramatically
      improves responsiveness in these situations.
  16. 05 Sep, 2017 1 commit
  17. 03 Sep, 2017 2 commits
  18. 02 Sep, 2017 2 commits
  19. 31 Aug, 2017 1 commit
    • Ell's avatar
      app: add dedicated op for pass through mode, with shortcuts · 5effdd03
      Ell authored
      Pass through mode uses the same compositing logic as REPLACE mode,
      however, it's a special case of REPLACE, where the layer is already
      composited against the backdrop.  This allows us to take a few
      shortcuts that aren't generally applicable to REPLACE mode.
      Add a dedicated op class for pass through mode, derived from the
      REPLACE mode op, implementing these shortcuts.
  20. 30 Aug, 2017 1 commit
  21. 28 Aug, 2017 2 commits
  22. 27 Aug, 2017 1 commit
    • Ell's avatar
      */Makefile.am: work around a bug in the new glib-genmarshal · 0ef3795f
      Ell authored
      glib-genmarshal was rewritten in glib 2.53.4, and as of now (2.53.6)
      it has a bug where it unconditionally generates marshaler bodies,
      even for standard marshalers, even with --stdinc.  This causes
      libgimpwidgets to define and export g_cclosure_marshal_VOID__INT()
      and g_cclosure_marshal_VOID__OBJECT(), which upsets defcheck, and
      breaks the build.
      Work around this for now by using --header --body when generating
      the marshal.c files, which includes the prototypes in the source,
      instead of including the header ourselves.  This is the only code
      path where the new glib-genmarshal doesn't generate bodies for
      standard marshalers.  Note, however, that this usage is deprecated,
      so we'll probably want to change it back once it's fixed.