Commit Graph

1039 Commits

Author SHA1 Message Date
Markus Volk
62317d5643 hyprlang: update 2024-04-15 17:13:20 +02:00
Markus Volk
799a848c5e libdisplay-info: make edid-decode dependency optional 2024-04-15 14:47:06 +02:00
Markus Volk
9d5c0ae90f wlroots-0.17: update 2024-04-14 19:13:27 +02:00
Markus Volk
8d73d44880 gamescope: update
Developer tries hard to build things statically. Rework accordingly
2024-04-14 19:12:59 +02:00
Markus Volk
4e675238de libdisplay-info: add dependency for edid-decode-native 2024-04-14 17:33:33 +02:00
Markus Volk
c65424edce udis86: remove recipe 2024-04-14 10:51:43 +02:00
Markus Volk
7ba60e097d hyprland: cleanup 2024-04-14 10:51:10 +02:00
Markus Volk
6a0ed0f3cd sway: update 2024-04-14 10:30:30 +02:00
Markus Volk
7820e7dc1d wlroots: update 2024-04-14 10:30:30 +02:00
Markus Volk
b941423a34 hyprland: update
Due to non-technical disputes, hyprland and freedektop will move in
different directions from now on. This led to a fork of wlroots. Let
hyprland build its own version of wlroots internally to keep things
maintainable.
2024-04-14 10:07:16 +02:00
Markus Volk
428604848e libliftoff: fix for gcc-14 2024-04-14 09:17:45 +02:00
Markus Volk
727d1dd3cf foot: update 2024-04-11 06:35:42 +02:00
Markus Volk
c4baf81b61 fcft: update 2024-04-11 06:35:14 +02:00
Markus Volk
89e776f788 hyprlock: update 2024-04-10 16:17:52 +02:00
Markus Volk
f8b1f7aace hyprcursor: update 2024-04-10 15:55:12 +02:00
Markus Volk
b508e211a0 hyprland: add recipe for 0.38
update to 0.38.1
2024-04-09 13:31:03 +02:00
Markus Volk
e0402132c8 hyprland-plugins: update 2024-04-07 20:02:12 +02:00
Markus Volk
df2ef3f690 hyprcursor: update 2024-04-07 20:00:32 +02:00
Markus Volk
0cc685fb0f layer.conf: update for master branch 2024-04-05 18:25:26 +02:00
Markus Volk
4127159e77 hyprexpo: add recipe; update plugins 2024-04-05 18:24:52 +02:00
Markus Volk
d300da1c43 hyprland: update to support hyprexpo 2024-04-05 18:22:46 +02:00
Markus Volk
a5a3d66164 hyprpicker: update
wayland-protocols are now built with cmake
2024-04-05 17:30:42 +02:00
Markus Volk
f5624b0b9e qAdwaitaDecorations: update 2024-04-05 16:33:40 +02:00
Markus Volk
59fbc85ba3 libjxl: drop recipe 2024-04-04 07:38:36 +02:00
Markus Volk
d899ad0e16 labwc-menu-generator: add recipe 2024-04-03 13:55:27 +02:00
Markus Volk
8c2b08894a hyprland-plugins: update 2024-04-03 13:44:25 +02:00
Markus Volk
e2ed4cd147 hyprcursor: update 2024-04-03 13:44:08 +02:00
Markus Volk
c0724406f4 sway: update 2024-04-03 13:43:31 +02:00
Markus Volk
92134baa0a hyprland: update
LICENSE changed year
2024-04-03 13:43:03 +02:00
Markus Volk
6df8bdd4bf wayfire: update wf-config 2024-04-03 13:39:25 +02:00
Markus Volk
c729d12ef8 libjxl: build gdk-pixbuf-loader
this is required for gnome-46 gnome-backgrounds, that have been mostly converted to jxl

- also enable mime support
2024-04-01 22:55:24 +02:00
Markus Volk
451d7f5990 highway: update 2024-03-27 14:02:01 +01:00
Markus Volk
f6e67090a7 gimp: update 2.99.16 -> 2.99.18
Use sed to remove STAGING_DIR_NATIVE from config.h. This prevents the values
for COLLECT_GCC= and COLLECT_LTO_WRAPPER= from including it.
For some mysterious reason, I had to run the same command twice to get rid of
both entries.

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

This is the unstable branch of GIMP.

Overview of Changes from GIMP 2.99.18 to GIMP 3.0.0-RC1
=======================================================

Core:

  - Conversion to Indexed:
    * color precision increased;
    * error diffusion in linear RGB while keeping palette generation as
      CIE Lab.
  - GIMP's GEGL operations:
    * Posterize operates with a perceptual gamma;
    * Threshold: processing with non-linear RGB;
    * Hue-Saturation: using HSLA float as processing space which should be
      quicker than previous implementation.
  - Welcome dialog:
    * Multiple images can be selected and opened at once with Enter key.
    * "Show on Start" is now displayed specifically in the "Create" tab.
  - Group layers can now have non-destructive layer effects.

Tools:

  - Gradient tool: the "Repeat" mode "Truncate" has been renamed "None
    (truncate)" and reordered to be second in the list, just after "None
    (extend)".

Plug-ins:

  - Plug-ins ported to GimpProcedureDialog: Warp, decompose.

API:

  - Changes in libgimp:
    * gimp_procedure_run_config() can run with no config objects (equivalent to
      run the prodcedure with default arguments).

Build:

  - Minimum dependency version bumps:
    * babl 0.1.108
  - Started a skeleton for unit testing framework for libgimp (only a few tests
    so far but we eventually target exhaustivity).

Overview of Changes from GIMP 2.99.16 to GIMP 2.99.18
=====================================================

Core:

  - New snapping options:
    * "Snap to Bounding Boxes": allows on-canvas snapping to either layer
      borders or center.
    * "Snap to Equidistance": allows to snap a layer to be at the same distance
      from a second one that this second one is to a third one, either
      horizontally or vertically.
  - GIMP is now able to use fonts with custom styles, which Pango is unable to
    work with.
  - Font names are not unique anymore, which means that GIMP doesn't rename
    identically named fonts with #1 or #2, etc. as it used to do. These fonts
    with same name are now properly working despite the name clash.
  - GimpData now have a concept of collection, which is either a controlled name
    for internal data, or a string constructed from the local file path for
    external data. This will be used to serialize data objects hence easily
    retrieve the proper data even when some data may have duplicate names.
  - New palette import support: SwatchBooker.
  - Artificially set PANGOCAIRO_BACKEND=fc when running on Windows to use the
    fontconfig backend, which enables anti-aliasing on Windows, unlike the
    default pangocairo backend.
  - XCF:
    * Font information are more accurately stored (not only the font name, but
      also storing various other attributes and even a file hash in the ideal
      case where the exact same font file is available), allowing to find the
      right font (if installed) on load with less errors.
    * As a consequence of the previous point, new files with text layers will be
      saved as a bumped XCF 19 version.
    * Older XCF versions with text layers can still be saved using older XCF
      versions as long as the text layers are untouched in an edit session.
  - "view-zoom-*" actions are not radio actions anymore.
  - Improve thumbnail loading algorithm:
    1. If there is a GimpThumbnailProcedure, it is run first.
    2. Otherwise we check if a thumbnail is in the metadata.
    3. As last resort, we just load the full image.
  - Generic inter-process transient window reimplemented using opaque GBytes
    window identifiers instead of guint32. The goal is to have windows created
    by plug-ins be transient to the calling core image window, but also the
    other way around: some core dialogs are generated through PDB calls (in
    particular resource and drawable chooser dialogs created by gimp_*_popup()
    functions) and should be transient to plug-in dialogs.
    This works on X11 and Wayland (the Wayland implementation is new, previous
    code was X11-only). It should work on Windows too (code exists) but this was
    left disabled as it leads to core process hanging (as described in
    https://bugzilla.gnome.org/show_bug.cgi?id=359538) and is pending debugging.
    There is no macOS implementation yet, and it seems to be missing from GDK as
    well.
  - Indexed images' colormap:
    * Now possible to delete colors if unused.
  - Updates for floating data's actions:
    * New actions "edit-paste-float" and "edit-paste-float-in-place" for pasting
      the contents of the clipboard as floating data with default positioning
      algorithm or in-place respectively;
    * renames "select-float" to "select-cut-float" which does a cut and paste as
      float in one action;
    * adds "select-copy-float" which does a copy and paste as float in one
      action;
    * reorganize a bit the `Edit > Paste as` submenu with sections for the
      floating data variants;
    * add a "Float" submenu in "Select" root menu, containing the 2 variant
      actions "select-cut-float" and "select-copy-float".
  - GEGL operation filters are now non-destructive by default: running these
    filters create layer effects. The UI is still basic and will be improved
    through iterations after GIMP 3 release.
  - FG/BG color action code (e.g. "Increase the red channel") are made
    contextual, relatively to the active image, working relatively to the
    correct color space and TRC.
  - Device Status dockable shows context-sensitive colors (the color profile's
    name is displayed as tooltip when hovering a fg/bg color status).
  - Palettes are now GeglColor-based and are stored with a lot more precision.
    Older low-precision palettes are still loaded fine. A single palette can
    contain mixed formats (different models and space). A concept of format
    restriction was added, yet is currently only used for indexed images'
    palettes (whose colors are always and only in the image's format).
  - Color History is now space-invaded (colors are stored in their original
    format and space).
  - Various color selectors (core or modules) are now space-invaded when
    relevant. For instance, they show colors in the active image space (not just
    sRGB) and display the profile's name when relevant. Also when simulation is
    active, some of the color selectors will update their out-of-gamut zone, not
    only to be within the image's gamut, but also the soft-proof gamut.

Graphical User Interface:

  - "Merge menu and title bar" option is not shown on macOS as it is not usable
    there (the main menu is anyway out of the window from the start).
  - Top menu has been special-cased for macOS (some items are removed with
    "hidden-when" attribute set to "macos-menubar" value) for items which are
    also available in the application menu.
  - Menu section can now be named with the "section-name" attribute in
    GtkBuilder ".ui" files. This can be used as a replacement of the former
    "Placeholder" concept which we used to have (and has now been completely
    removed).
    Plug-ins or GEGL operations which want to make use of sections can use the
    "[Section]" syntax. For instance installing a plug-in in the menu path
    "<Image>/File/[Open]" will install the menu item at the end of the Open
    section (i.e. after the various other open-file actions at the top of the
    File menu).
  - Some string or naming consistencies were fixed in source strings.
  - GimpContainerEntry don't have inline completion anymore. Instead the result
    pop-up always appear, even for one result. This is because a limitation of
    GtkEntryCompletion: we cannot remove the case sensitivity search (see
    gtk#275) which was very bad usage experience because when we reached a
    single result, suddenly nothing happened anymore (no popup, no completion)
    if case was different on any letter. It's just better to always have popup
    with case insensitivity.
    This widget is used for instance for on-canvas font selection.
  - Some icons were modified with an added light border to make them better
    visible on dark themes: gimp-tool-text icons in Color and Legacy icon themes
    and gimp-tool-dodge in Color theme.
  - Help menu rearranged to be better organized and also to move "About GIMP" as
    the last item, which is its more conventional position.
  - Many fixes to the default themes (including several cases of CSS rules
    leaking from system themes).
  - New settings in Preferences to set the interface base font size (this won't
    work as well, or at all, for themes which would set absolute font sizes).
  - "gimp-wilber-eek" icon is now reused as generic "image-missing" icon too.
  - In dockables' grid view, the hovered icon is now highlighted with a
    contrasted border.
  - GimpPdbDialog (e.g. resource chooser dialogs) are now set to system defaults
    for whether or not they use a header bar.
  - Shift+Number-row default shortcuts are now transformed into the actual key
    in the currently used layout (reciprocally, if numbers are direct access
    key, their counterpart shortcuts are similarly updated).
  - Colormap dockable:
    * New "Delete" button available and sensitive only when selecting an unused
      color in the palette.
  - Windows: title bar will be switched to light or dark mode based on the
    current theme.
  - The quit dialog now adjusts its size relatively to monitor height.
  - The heuristic to set a cursor when single or multi-selecting items in a tree
    view got reviewed in order to avoid unnecessary scroll. As a general rule,
    the cursor is always set to one of the selected elements, ideally the last
    clicked element unless it is not selected (e.g. removed with Ctrl-click),
    then a closest selected element is chosen to avoid unnecessarily scroll of
    the item list.
  - Pad buttons can now be configured in the "Input Devices" configuration dialog
    to run any actions directly (without mapping shortcut key combinations as
    intermediate). This only works on Wayland for the time being (yet may work on
    more platforms in the future, depending on GTK evolution).
  - Themes can now be proposed with up to 3 variants: dark, light and middle
    gray, through gimp-dark.css, gimp-light.css and gimp-gray.css CSS files
    respectively.
  - As a consequence of the previous point, our Default and Gray themes are
    merged as one with 3 possible variants.
  - Our Color and Symbolic icon themes are merged as a single icon theme named
    "Default".
  - The "prefer-symbolic-icons" property which can be set in Preferences is only
    used when the selected icon theme has both Color and Symbolic styles.
    Otherwise the chosen icon theme style prevails. The presence of a style is
    determined by the presence of the "gimp-wilber" icon (which becomes
    therefore a de-facto mandatory icon in an icon theme) and/or its symbolic
    variant.
  - When "Override icon sizes" is checked, a few padding values are also
    overridden by code in the loaded CSS.
  - As a consequence of the previous point, we removed the "Compact" theme which
    is now simply possible by overriding sizes to "Small" in Preferences (when
    the theme is "Default", it will display the same as the former "Compact"
    theme, though it will also work with any other theme).
  - "Darker" theme is removed for lack of contributors actually caring for it.
    It could be revived in the future as a "Contrast" theme with both a dark and
    light variants at the very least.
  - The search function in Layers dockable was moved over the Layers list (with
    headers), the "link" icon replaced by "search" icon, and is now available
    for both Layers, Channels and Vectors dockables (though unsaved for Vectors
    because of lack in XCF support).
  - The Welcome dialog was improved and its cases extended:
    * A new "Personalize" tab contains duplicate settings taken from the
      Preferences, in particular the more controversial settings, such as theme
      or icon themes, HiPPI support (icon/font sizing), merged menu and title
      bar, tool groups or update check.
    * A new "Contribute" tab displays a few of the main links for people to
      contribute to GIMP.
    * A new "Create" tab proposes buttons to create new images or open existing
      ones, as well as displaying a list of the last 8 opened images for easy
      re-opening.
    * A new checkbox (checked by default) allows the welcome dialog to be shown
      at each and every startup. Except on new installations or version updates,
      the first shown tab will be the new "Create" tab, which is probably the
      most useful for day-to-day first dialog shown at startup (on updates, the
      "Welcome" tab featuring the new splash screen and a small welcome text is
      shown).

Tools:

  - Text tool:
    * improve markup creation logic when replacing selected text in
      order not to create useless styling markup interfering with other
      features.
    * Alignment for RTL languages is now more consistent with how it works in
      other software (such as LibreOffice or Scribus).
    * Text layers can now be rendered in the full image's gamut (not sRGB only
      anymore), though colors are trimmed to the gamut and are always 8-bit.
    * Text outline colors are now rendered in float in the full image's gamut,
      without precision loss.
  - Paint tools: all painting tools now have an "Expand Layers" option
    allowing to auto-expand layers when painting across layer
    boundaries. A few additional sub-options customize how this
    expansion happens (by how many pixels, filling with transparency,
    color, pattern).
    Expansion does not grow over canvas boundaries, unless "Show All" is
    checked too.
  - Color Picker:
    * Picked color is internally kept as a GeglColor, doing only last-minute
      conversion to the output model/space, hence with better precision.
    * RGB, Grayscale and Pixel modes display the profile name of the output
      color space (the active image's color space if relevant).
  - The Gradient tool now uses GeglColor internally, though GIMP's gradient
    format (GGR) still uses old RGB format.

Plug-ins:

  - Farbfeld: new image format import/export support.
  - OpenEXR:
    * Files with single channels are always treated as grayscale, even when
      they use non-conventional channel names. A notice message is also
      presented to the user in a dialog for information.
  - Metadata Editor:
    * Various code cleanups and improvements;
    * GUI improvements;
    * Xmp.plus.ImageSupplierName can now only have one value;
    * Improved Creation date handling;
    * Synchronization (both for reading and writing) added between some Exif,
      Xmp and Iptc equivalent tags. On reading, when equivalent tags have
      different values at load, a terminal warning is now outputted.
  - Script-fu:
    * Generated dialog's titles are not prefixed with "Script-Fu: " anymore.
    * Several scripts were removed and moved to gimp-data-extras: erase-rows,
      grid-system, select-to-brush, select-to-image, select-to-pattern.
    * script-fu-copy-visible was removed (and not moved to gimp-data-extras).
    * New test scripts.
  - New gimp-help-main script to link to the "Table of Contents" of the manual,
    added to the "Help > User Manual" submenu.
  - PSP:
    * added support to load PSP ICC Profile data.
    * fixed vulnerabilities: ZDI-CAN-22096, ZDI-CAN-22097.
    * load active selection from PSP file.
    * Load guides and grid info.
  - Image Map: two new fields to the HTML Link tab and one new field to the
    Javascript tab for area properties:
    * accesskey: The same as the mnemonic key shortcuts in GTK, to activate an
      area of the image map. Depending on the OS, you either hold ALT or
      ALT+SHIFT and this key.
    * tabindex: What order to select the area when the user presses Tab.
    * onClick: Run a Javascript function when the user clicks on the area.
  - Esm Software PIX: new import support.
  - All plug-ins were ported to the new Gimp*Procedure API using
    GimpProcedureConfig instead of GimpValueArray arguments.
  - Add Border (script-fu): add a 'Allow resizing' toggle.
  - Plug-ins ported to GimpProcedureDialog: van-gogh-lic, dds-write, flame,
    histogram-export, lighting, fractal-explorer, map-object, sample-colorize,
    compose, curve-bend, depth-merge, selection-to-path, pagecurl, file-cel,
    file-svg, file-wmf, smooth-palette, small-tile, film, gradient-flare, tile,
    web-page, screenshot.
  - JPEG-XL:
    * Load metadata via libjxl exclusively.
    * Disable GIMP EXIF orientation support, using orientation stored in
      codestream instead.
  - HEIF:
    * Load metadata via libheif exclusively.
    * Disable GIMP EXIF orientation support.
  - PDF:
    * "Layers as Pages" works now for a single layer group with multiple
      sub-layers.
  - DDS:
    * Add support for loading DDS 16- and 32-bit per channel RGBA. Loading is
      supported for 16-bit half float, 32-bit float, 16 and 32-bit unsigned and
      signed int.
      This supports both the DX10 formats and the D3D FOURCC versions.
      16- and 32-bit per channel images with less than 4 channels are not yet
      supported.
    * Add DDS support for loading R8G8, R16 and R16G16 formats.
      GIMP can load DXGI variants as well as the older D3DF versions, including
      handling of the signed versions.
      We also set signed when the pixelformat flag DDPF_BUMPDUDV is set.
    * New option to vertically flip dds image on import. This is needed by some
      game engines.
    * All mipmap generation is done at 32-bit floating-point precision.
    * A new cubic filter has also been added (Catmull-Rom) which
      rounds-out the existing lineup of cubic filters.
    * Better handling of DX10+ files in ddsread.
    * Always interpret BC1 cutout pixels as black pixels with 0 alpha,
      per the official format specification.
    * Import code was rewritten and improved for maintainability and
      readability. Importer now supports nearly all non-video
      uncompressed formats.
  - GIF:
    * Remember when a file was stored as a GIF animation to be reused when
      overwriting.
   - PNG:
    * Import/export safe-to-copy PNG chunks.
   - HEJ2: new import support. HEJ2 is JPEG 2000 image coded images in HEIF
     containers.
   - PSD: better wording of the export warning for the path of less surprise.
   - Python Console uses theme colors for font colors instead of hardcoded
     colors which don't work well on darker themes.

Data:

  - Clarified our capitalization rule for data titles: part of titles
    inside parentheses also follow title casing.
  - "(Hardedge)" generated gradients got renamed "(Hard Edge)".

Translations:

  - Many non-translatable strings were made translatable. Various other
    localization bugs were handled.
  - New Belarusian translation in the Windows installer.

API:

  - Changes in libgimpconfig:
    * GimpConfig serialization doesn't break anymore if one property
      serialization fails. GIMP will now continue to serialize the rest. In
      particular, it will allow to retrieve as many arguments as possible
      between plug-in runs.
    * GBytes (de)serialization support added. It supports gracefully a NULL
      GBytes value.
    * GeglColor (de)serialization support added. Former GimpRGB properties can
      be gracefully converted to GeglColor properties when needed (e.g. to be
      able to convert old property or resource files, containing GimpRGB values,
      to newer GeglColor).
  - Changes in libgimp:
    * GimpResource can now be (de)serialized using the data name and collection
      so that we are now able to retrieve a used resource quite reliably between
      runs.
    * For GimpProcedure with no run-mode parameter, the run-mode is considered
      non-interactive (e.g. for decision algorithm about whether to reuse
      previous settings or not).
    * Arguments of type GimpResource and its subtypes are now supported and
      GimpProcedureDialog will generate appropriate chooser widgets.
    * Arguments of type GimpLayer and GimpChannel will have a proper widget
      generated (GimpDrawableChooser) by GimpProcedureDialog, limited to only
      the proper drawable subtype.
    * All GimpProcedure and its subtypes now have a run() method using a
      GimpConfig instead of a GimpValueArray. In particular, the type of the run
      argument changed in gimp_procedure_new(), gimp_batch_procedure_new(),
      gimp_image_procedure_new(), gimp_load_procedure_new(),
      gimp_save_procedure_new() and gimp_thumbnail_procedure_new().
      The following 2 run function types had further evolutions:
      + GimpRunLoadFunc: by default, a GimpLoadProcedure will try and load
        metadata from a file (if Exiv2 knows the format). The run() function
        will be allowed to edit the GimpMetadata object but also the load flags
        before it is actually attached to the image, allowing plug-ins to have
        custom metadata handling code when needed.
      + GimpRunSaveFunc: metadata handling is integrated in this new version of
        the API, since the run() function will pass a prepared metadata object,
        which can be modified by plug-in code (if needed). This GimpMetadata
        object will be stored automatically by the GimpSaveProcedure
        infrastructure if the mimetype argument is set in
        gimp_save_procedure_new().
    * On plug-in exit, we do not display memory reference hold warnings for Lua,
      Javascript and Python plug-ins anymore. The GObject-Introspection bindings
      for these languages seem to hold references of their own in some
      conditions and anyway plug-in developers don't have any memory management
      capabilities available in the chosen languages. It's not like they can do
      anything.
    * New functions:
      + gimp_procedure_dialog_set_sensitive_if_in()
      + gimp_procedure_dialog_set_ok_label()
      + gimp_procedure_dialog_fill_notebook()
      + gimp_procedure_dialog_fill_notebook_list()
      + gimp_procedure_dialog_fill_paned()
      + gimp_procedure_config_get_choice_id()
      + gimp_prop_brush_chooser_new()
      + gimp_prop_font_chooser_new()
      + gimp_prop_gradient_chooser_new()
      + gimp_prop_palette_chooser_new()
      + gimp_prop_pattern_chooser_new()
      + gimp_resource_select_button_get_label()
      + gimp_pattern_get_buffer()
      + gimp_drawables_close_popup()
      + gimp_drawables_popup()
      + gimp_drawables_set_popup()
      + gimp_prop_drawable_chooser_new()
      + gimp_font_get_pango_font_description()
      + gimp_fonts_get_by_name()
      + gimp_image_get_palette()
      + gimp_procedure_run_config()
      + gimp_procedure_run_valist()
      + gimp_procedure_dialog_get_drawable_preview()
    * Removed functions:
      + gimp_procedure_config_begin_run()
      + gimp_procedure_config_end_run()
      + gimp_procedure_config_begin_export()
      + gimp_procedure_config_end_export()
      + gimp_procedure_config_get_values()
      + gimp_procedure_config_set_values()
      + gimp_pdb_run_procedure_argv()
      + gimp_pdb_run_procedure()
      + gimp_pdb_run_procedure_valist()
      + gimp_pdb_run_procedure_array()
      + gimp_pdb_run_procedure_config()
      + gimp_procedure_new_arguments()
      + gimp_pdb_set_data() a.k.a. gimp_set_data()
      + gimp_pdb_get_data() a.k.a. gimp_get_data()
      + gimp_pdb_get_data_size() a.k.a. gimp_get_data_size()
    * Modified functions:
      + gimp_procedure_dialog_get_label():
        1. Added `is_markup` and `with_mnemonic` boolean arguments.
        2. `label_id` argument can be a string property to sync to, or a new
           widget ID to create, using `text` as initialization contents.
      + gimp_label_spin_set_increments(): made more generic and robust to handle
        integer spin or modifiable min/max.
      + gimp_param_spec_get_desc():
        - Also handles new GimpChoice arguments by listing all valid string
          values for a given argument.
        - Returned string is now pango-markup formatted.
      + gimp_display_get_window_handle() and gimp_progress_get_window_handle():
        the return value is now an opaque GBytes which is to be interpreted
        differently depending on the running platform.
      + All gimp_*_popup() functions now have a `parent_window` argument which
        is the opaque window handle of the calling plug-in dialog, such as can
        be returned by gimp_dialog_get_native_handle().
      + gimp_brush_get_pixels() replaced by gimp_brush_get_buffer() and
        gimp_brush_get_mask().
      + gimp_text_layer_set_font() now uses a GimpFont.
      + gimp_text_layer_get_font() now returns a GimpFont.
      + gimp_text_layer_new() now uses a GimpFont.
      + gimp_text_fontname() renamed gimp_text_font().
      + gimp_text_get_extents_fontname() renamed gimp_text_get_extents_font().
      + gimp_ui_init() now implies a gegl_init().
      + gimp_procedure_run() now uses a variable argument list of (name, value)
        pairs.
    * New classes:
      + GimpPickableSelect
      + GimpDrawableChooser
    * Modified classes or structure:
      + GimpProgress:
        - GimpProgressVtableGetWindowFunc function type now returns GBytes.
        - get_window() abstract method is renamed get_window_handle().
      + GimpResourceSelectButton:
        - Class made abstract.
        - It now has a label which is used in the size group in
          GimpProcedureDialog.
      + GimpBrushSelectButton: big UX improvements.
      + GimpPatternSelectButton: big UX improvements.
      + All Gimp*SelectButton widgets were renamed to Gimp*Chooser.
    * New GimpProcedure argument types:
      + GimpChoice: this will replace cases when we used to use int arguments to
        represent custom enum types, which was particularly non-usable when the
        list of valid choices was long and the string docs was not kept
        up-to-date.
        It comes with GIMP_PROC_ARG_CHOICE(), GIMP_PROC_AUX_ARG_CHOICE(),
        GIMP_PROC_VAL_CHOICE(), GIMP_VALUES_GET_CHOICE() and
        GIMP_VALUES_SET_CHOICE() macros.
        The advantages of this new type:
        - No need to keep the list of valid choices up-to-date anymore within
          the docs string.
        - Since the docs string doesn't contain long list of arguments, we don't
          have long opaque and non-understandable tooltips assigned to graphical
          interface widgets.
        - Calling a PDB procedure with a human-readable string is much more
          understandable than with an opaque int.
        - This type handles invalid input for generic error handling.
        - We can easily generate a list of the valid string values. E.g. this is
          now used in the Procedure Browser through gimp_param_spec_get_desc().
        - Choices can be made insensitive if needed.
        - A proper widget (GimpStringComboBox) will be generated by
          GimpProcedureDialog by default.
    * PDB: the big change in the PDB is that we decided not to warrant argument
      orders anymore. In particular, it means that the libgimp functions to run
      PDB procedures are not based on an ordered array of arguments anymore but
      on named arguments only.
      + The first consequence is that it will be possible to add arguments, and
        even order them however we want in the list of arguments. For
        backward-compatibility, what will matter is only that the procedure
        using the default values for the new arguments will behave the same way
        it did when it used not to have said arguments. Then scripts won't break
        as we add new arguments and we won't have to create alternative v2 or v3
        PDB procedures each time we wish to add a new feature.
      + The second consequence is that calling PDB procedures is now much more
        semantic. Firstly we can ignore arguments for which we keep the default
        values; secondly every argument will be accompanied by a name instead of
        being a long list of int or boolean values.
        Typically while we used to call a PDB like this:
```C
        gimp_pdb_run_procedure (gimp_get_pdb (),
                                "file-png-save",
                                GIMP_TYPE_RUN_MODE,     GIMP_RUN_NONINTERACTIVE,
                                GIMP_TYPE_IMAGE,        image,
                                G_TYPE_INT,             1,
                                GIMP_TYPE_OBJECT_ARRAY, args,
                                G_TYPE_FILE,            file,
                                G_TYPE_BOOLEAN,         FALSE,
                                G_TYPE_INT,             9,
                                G_TYPE_BOOLEAN,         FALSE,
                                G_TYPE_BOOLEAN,         FALSE,
                                G_TYPE_BOOLEAN,         FALSE,
                                G_TYPE_BOOLEAN,         FALSE,
                                G_TYPE_BOOLEAN,         FALSE,
                                G_TYPE_BOOLEAN,         FALSE,
                                G_TYPE_NONE);
```
        We can now call it like this (with a shorter list of arguments, ignoring
        all the ones which we keep default, not bothering about arg order and
        tagging each arg with a semantic name):
```C
        gimp_procedure_run (gimp_pdb_lookup_procedure (gimp_get_pdb (),
                                                       "file-png-save"),
                            "run-mode",         GIMP_RUN_NONINTERACTIVE,
                            "image",            image,
                            "num-drawables",    1,
                            "drawables",        drawables,
                            "file",             file,
                            "bkgd",             FALSE,
                            "phys",             FALSE,
                            "time",             FALSE,
                            NULL);
```
      + The few libgimp functions of the form `gimp_pdb_run_procedure*()` were
        removed and moved directly to `gimp_procedure_run*()` variant. The
        presence of both interfaces was making it confusing.
      + For bindings not able to replicate variable arguments functions, the
        bindable function will be gimp_procedure_run_config() only, which will
        be renamed to gimp_procedure_run() in bindings.
      + Note that internally the argument order is still relevant for any system
        which interfaces directly with the PDB instead of libgimp. In other
        words, it is still relevant for script-fu which generates functions out
        of PDB procedures directly (not libgimp).
      + GimpObjectArray arguments now allow NULL through the pipe as meaning an
        empty array.
  - Changes in libgimpbase:
    * New classes:
      + GimpChoice: meant to represent a list of allowed strings values.
    * GimpRotationType values were changed by prepending "DEGREES" without
      hyphen before the numeric value (e.g.: GIMP_ROTATE_90 becomes
      GIMP_ROTATE_DEGREES90), because the older naming breaks introspection for
      some languages, such as Python where Gimp.RotationType.90 syntax would be
      forbidden.
    * GIMP Protocol can now exchange GeglColor values across the wire.
  - Changes in libgimpwidgets:
    * New functions:
      + gimp_widget_set_native_handle()
      + gimp_dialog_get_native_handle()
      + gimp_preview_area_reset()
      + gimp_cairo_set_source_color()
      + gimp_color_selection_set_format()
    * New classes:
      + GimpLabelStringWidget: makes any widget with a "value" string property
        into a GimpLabeled.
    * Modified classes:
      + GimpStringComboBox:
        - add a "value" string property to GimpStringComboBox (which makes it
          usable by GimpLabelStringWidget).
        - New method gimp_string_combo_box_set_sensitivity()
    * Several widgets are now space-invaded, using GeglColor instead of GimpRGB:
      + GimpColorArea
      + GimpColorScale
      + GimpColorScales
      + GimpColorSelect
      + GimpLabelColor
      + GimpPreviewArea
      + GimpColorButton
      + GimpColorHexEntry
      + GimpColorSelection
      + GimpColorNotebook
      + GimpColorSelect
      + GimpColorSelector
      + GimpColorNotebook
  - Changes in libgimpui:
    * Modified functions:
      + gimp_window_set_transient_for_display() and gimp_window_set_transient()
        now use an internal implementation similar to core
        gimp_window_set_transient_for(), with the same improvements (works even
        at construction when the window is not visible yet + works for Wayland
        too).
    * Removed functions:
      - gimp_ui_get_progress_window()
      - gimp_ui_get_display_window()
  - Changes in libgimpcolor:
    * New functions:
      + gimp_color_set_alpha()
      + gimp_color_is_perceptually_identical()
      + gimp_color_is_out_of_gamut()
      + gimp_color_is_out_of_self_gamut()
      + gimp_color_parse_hex()
      + gimp_color_parse_name()

Build:

  - Windows 10 becomes the new minimal support for the 3.0 stable series on
    Windows. This bump happens because of end-of-support by Microsoft itself,
    and also by MSYS2 project which is our base for the official installers.
  - CI now generates babl and GEGL API reference HTML as artifact tarballs.
  - New meson options -Dfits and -Dopenmp to enable/disable respectively FITS or
    OpenMP support more explicitly (allowing to bypass auto-detection).
  - Pango 1.50 or higher is now required as a result of using
    pango_attribute_as_font_desc(). Also pango, pangocairo and pangoft2 now use
    the same minimum version requirement.
  - New Aarch64/Windows build jobs in CI.
  - The universal Windows installer generated by the CI now detects and installs
    a native Aarch64 build on ARM 64-bit architecture.
  - Meson: alternatively to luajit, we now search also lua5.1, then 5.2 and 5.3
    (5.1 first, because apart luajit, it is the only one with lua-lgi support in
    MSYS2 right now).
  - CI: unify jobs naming and order.
  - Windows builds: various cleanups, code factorization and more.
  - Windows installer: the desktop shortcut option is now checked by default
    because of the fact too many people could not find GIMP after installation.
  - New .vscode/ config folder for Visual Studio Code settings to follow our
    coding style.
  - 'gegl.exe' binary is now installed by the Windows installer.
  - Minimum libheif requirement bumped: libheif >= 1.15.1.
  - GEGL requirement bumped to GEGL 0.4.48.
2024-03-27 13:34:19 +01:00
Markus Volk
60a1984f87 libjxl: update 2024-03-27 13:34:15 +01:00
Markus Volk
ded5310195 layer.conf: update 2024-03-27 01:01:38 +01:00
Markus Volk
51e48bc82c wayfire: update 2024-03-26 10:37:14 +01:00
Markus Volk
9ef10a9feb wf-shell: update 2024-03-26 10:34:26 +01:00
Markus Volk
1d0a95884a wob: update 2024-03-26 10:29:47 +01:00
Markus Volk
d7b9ef2c2b wlr-randr: update 2024-03-26 10:28:43 +01:00
Markus Volk
82a7cfa46e wl-clipboard: update 2024-03-26 10:28:17 +01:00
Markus Volk
96507f5ce9 mako: update 2024-03-26 10:28:02 +01:00
Markus Volk
f5dbc8f58f slurp: update 2024-03-26 10:27:47 +01:00
Markus Volk
d4abb8780a grim: update 2024-03-26 10:27:34 +01:00
Markus Volk
a9509750e1 adwaita-qt: fix AdwaitaQt6Targets.cmake 2024-03-25 18:48:13 +01:00
Markus Volk
1fe7ea1e8c nwg-panel: update 2024-03-25 12:09:41 +01:00
Markus Volk
c93d3a1aca nwg-hello: update 2024-03-25 12:09:19 +01:00
Markus Volk
9e5406754d nwg-displays: update 2024-03-25 12:08:57 +01:00
Markus Volk
406bcfcef1 hyprland-plugins: update 2024-03-24 11:20:29 +01:00
Markus Volk
081f28927b hyprland-contrib: update 2024-03-24 11:20:10 +01:00
Markus Volk
9d75d4e34b hyprcursor: update 2024-03-24 11:19:47 +01:00