                   ------------------------------
                   GNU Image Manipulation Program
                         Development Branch
                   ------------------------------

This is the development branch of GIMP.


Overview of Changes from GIMP 3.0.4 to GIMP 3.1.2
=================================================

Core:

  - Layer mask created from layer's alpha when there is no alpha
    channel is now a fully opaque mask.
  - Major non-destructive filter code refactoring.
  - Lock Content now generates undo steps.
  - NDE filters are now allowed on channels.
  - Merging filter will now add an alpha channel to a layer if required.
  - Refactoring Photoshop stream loading functions.
  - Loading Photoshop RGB and grayscale patterns (.pat, unfortunately
    the same extension as our own pattern format) now supported.
  - The histogram editor now shows a "Compute unique colors:" checkbox
    which will display the unique color count in the image.
  - Deleting current palette entry now selects the next entry in the
    palette.
  - New paint mode: Overwrite. Note that this mode is only available for
    paint tools right now (in particular not for layers, neither in
    filters).

Graphical User Interface:

  - Brushes and Fonts dockables: new "Use theme colors for preview"
    toggle button.
  - The Palettes and Palette Editor dockables, and the Palette tab in
    FB/BG Color dockable, also follow theme colors for grid display.
  - New "System" color scheme which will follow the system's color
    scheme setting (on Unix-like systems when XDG Settings portal is
    installed and on Windows).

Tools:

  - Curves tool: Photoshop curves file format (.acv) can now be loaded.
  - Levels tool: Photoshop levels file format (.alv) can now be loaded.
  - Text tool: new "Outline Direction" settings.

Plug-Ins:

  - Jigsaw: the plug-in now draws on transparent layers too.
  - Playstation TIM images now supported (import/export).
  - Palettes can now be exported as Krita .kpl palette.
  - Over The Air Bitmap (Nokia mobile image format) now supported for
    import.
  - PSD:
    * legacy Drop Shadow layer style is now imported on loading.
    * legacy Inner Shadow layer style is now imported on loading.
  - file-raw: new support for ART (Another RawTherapee, fork of the
    latter) as a RAW loader.
  - OpenEXR: support for importing multi-layer OpenEXR images.
  - JPEG 2000: export support added.
  - APNG: initial import support.
  - JIF: new import support for Jeff's Image Format.
  - ORA: support the extensions storing layer's "pixel locked" and
    "selected" status on import and export.
  - Script-Fu: new function (script-fu-register-i18n) for setting up
    localization of Script-Fu plug-ins.
  - HEIF:
    * new AVCI import support (requires libheif 1.19.6 with OpenH264
      decoder enabled);
    * new HEJ2 export support (requires libheif 1.19.8 with OpenJPEG
      support).
  - New export support for PSB.

Modules:

  - CMYK selector: Total Ink Coverage (total percentage of ink that
    would be needed to print a particular color) information is now
    shown.

API:

  - Changes in libgimpwidgets:
    * New functions:
      + gimp_prop_toggle_new()
  - Changes in libgimpui:
    * New functions:
      + gimp_procedure_dialog_get_coordinates()
    * gimp_procedure_dialog_get_widget() will now generate a radio frame
      widget for GimpChoice arguments of 2 choices only (and will still
      default to a combo box for larger choices list).

PDB:

  - none_ok tag now allowed on sample_point and guide PDB types.

Build:

  - File format associations list now generated by the build system for
    Windows and OSes using the Desktop file.
  - Flatpak: verify nightly flatpak dependencies with the
    flatpak-external-data-checker (like we do for stable and beta
    flatpaks).
  - Various non-portable scripts were ported to be properly
    POSIX-compliant and to allow native builds on all OS (e.g. Windows).
  - Some soft checks were also added to the build system to prevent
    re-introduction of non-portable code.


Overview of Changes from GIMP 3.0.2 to GIMP 3.0.4
=================================================

Core:

  - Make maximum radius for generated brushes consistent across
    codebase.
  - Use NDE filter name for undo history.
  - Module loading improved to be better cross-platform (in particular
    on macOS both .so and .dylib modules are supported).
  - Code compliant with GCC 15 (C23).
  - Filter size updated when its drawable is rotated.
  - Font loading (at startup) optimized.
  - Set the proper program name for KDE/Wayland to map the process to
    the correct desktop file.
  - "windows-display-*" are hidden from the Shortcuts dialog (they are
    not meant to be remapped).
  - Editing non-destructive effects now triggers undo steps.
  - When migrating from GIMP 2.x to GIMP 3, shortcuts for actions
    "edit-paste-as-new-layer*" are now converted to "edit-paste-merged*"
    (and not "edit-paste*" anymore which was confusing and
    counter-productive).

Graphical User Interface:

  - Highlight selected device in GimpDeviceStatus.
  - Various theme leak fixes.
  - UX improvement: GimpViewableDialog (e.g. Fill/Stroke path and more)
    now has "OK" as default response.
  - Icon size settings now also applying to Move and Transform icon
    boxes.
  - Commit hash is now shown in About dialog in all non-release builds
    (i.e. even in stable series, when we are in-between releases).
  - Hide Force slider for Pencil Tool (rather than just making it
    insensitive).
  - Define merged titlebar icon colors.
  - Keep menubar color consistent when out of focus.
  - We don't show Fx icon for tool-based filters.
  - Updated splash without micro version in it.
  - Removed size restrictions on Display Filters.
  - Don't show hidden tools on toolbox tooltips.
  - Fix "Keep above" Window Manager hint.
  - Multi-Window mode on Windows: dock windows' title bars now adapt to
    the Windows system theme colors too.
  - Show palette name in Palette Color Selector.

Tools:

  - MyPaint Brush: have consistent options layout compared to other
    paint tools.
  - Scissors Select Tool: close the curve on Enter, similar to the Path
    tool.
  - Path Tool: connect path on click in design mode.

Plug-ins:

  - Restore GUI to Difference Clouds script. This had been lost since
    GIMP 2.8!
  - Fixes in various file format support, such as: DDS, SVG, TIFF, PSD,
    BMP, ICO…
  - Screenshot dropdowns replaced by radio buttons, as part of a new UX
    decision that choice settings with 2 or 3 choices should be dropdown
    (faster 1-click access), unless there are a lot more settings making
    the dialog too crowded already.

PDB:

  - Make "gimp-plug-ins-query" public again (yet still not available in
    libgimp).

Build:

  - Windows Installer:
    * Make the installer aware of Install, Reinstall and Update modes.
    * Add Repair mode to Windows installer: in particular we can now fix
      installations when the previous install directory cannot be
      accessed anymore.
    * The feature to delete the config folder on Windows uninstall will
      now make a backup on the Desktop first (allowing people to delete
      it themselves, move it, or even restore it later if needed).
    * Uninstalling while GIMP is running is made impossible (among other
      issues, it was causing partial uninstallation).
    * Downgrading is only possible by uninstalling first.
    * Development warning is shown in dev build of stable series too.
    * Add fractional scaling support to Installer welcome image.
    * Restore points now have a timeout to prevent stuckness.
  - Our AppImage won't ship debug symbols anymore. Better debugging can
    be set with: export DEBUGINFOD_URLS="https://debuginfod.debian.net"
  - Windows builds:
    * Ship babl/GEGL and libgimp headers, static libs and pkg-config
      files for plug-in developers.
    * Dedicated file icon for XCF files.
    * Generate native .pdb CodeView symbols on Windows (smaller debug
      data files, usable by MSIX and better debugging ability), except
      on x86 (32-bit).
  - Crossbuilds are dropped from CI.
  - Shell scripts used in the meson build are ported to Python (more
    portable and much faster on some platforms, in particular Windows).
  - Some build scripts were moved around for reorganization.
  - Depency requirement bumped:
    * babl 0.1.114
    * GEGL 0.4.62
  - New "Inputs" feature for simpler Gitlab pipelines running.
  - Some in-repository documentation was cleaned up.


Overview of Changes from GIMP 3.0.0 to GIMP 3.0.2
=================================================

This is a bug-fix only release.

Core:

  - Mark some strings translatable.
  - Fix crash when choosing a brush in grid view.
  - Windows: temporary revert of some Input Device handling code which
    was breaking pressure sensitivity for some graphics tablets (though
    this revert may make issues with the eraser tip).
  - Fix crash when choosing a non-existing font in text tool options.

Tools:

  - Reorder Line Art Detection options per design decision.

Graphical User Interface:

  - Keep headerbar color consistent when out of focus.
  - Histogram uses the luminance value of the foreground color as a
    threshold to lighten or darken the border color for contrast with
    the histogram itself.
  - Improve separation between panels in dark theme.
  - Add default response for GimpQueryBox dialogues.
  - Spacing between toolbox widgets improved.
  - GimpSpinScale slider colors inverted.
  - New icons: "gimp-toggle-on" and "gimp-toggle-off" and using them in
    the Search Action's list as icons for toggle actions.

Plug-ins:

  - Python Console uses the luminance of the background color for error
    text.
  - Metadata Editor: fix buffer overflow.
  - Gradient Flare: fix crash when setting the size to 0.
  - Screenshot: X11 implementation is bypassed (in favor of portals)
    when running on XWayland.

Build:

  - Various packaging fixes and cleanup.
  - The Windows installer now prompts (only in user installation) about
    deleting GIMP config files when uninstalling.
  - GEGL 0.4.58 is now our minimum requirement.
  - Windows installer: create Restore Point on system-wide install.
