Skip to content

Conversation

@vtyrtov
Copy link
Owner

@vtyrtov vtyrtov commented Jan 16, 2026

No description provided.

MStraeten and others added 30 commits November 14, 2025 18:01
to recent pot file
* Added a python script to enable discord rpc
…-251114

Translations update: en@truecase and Ukrainian
1. There was a bug introduced in 872e4b8, we should just
   make sure we don't read NaN from the pipe.
2. If we use an unsupported interpolator we should return an error code instead of false.
As RustiCL
- made great progress
- is available with regular updates for all distributions
- is pretty performant
- cares about dt problems using it

we should not discourage people using it.
…e-org#19740)

* Allow single-click on checkbox label to toggle the checkbox

The UX best practice for checkboxes is to use not only the (very small)
checkbox rectangle but also the checkbox label to toggle the setting.

Darktable is using double-click on the label to reset the checkbox to
its default value.

This patch adds a single-click handler to the label to toggle on/off
without breaking the double-click functionality.

This code path affects the checkboxes in the "import to library" dialog
and the map settings view.

The bool checkboxes in the "general" preferences tab are hand-crafted and
subject to a separate PR / refactoring.

The bool checkboxes in the other preferences tabs come from a
Lovecraftian XSLT generator that emits an 8K LoC C file that's #included
into preferences.c. It contains hundreds of auto-generated callback
functions that look like they can be replaced with just one callback per
preference type that's using `gtk_widget_get_name()` to obtain the
respective preference key, and a pair of `gtk_widget_set_data()` /
`get_data()` for the respective default values.

If the above UX change gets principal approval, I might look into
changing the code for the remaining checkbox types to mimic the same
behavior.

* Refactor and rename single-click preference callback

* Add click handler to bool preference labels in "general"

* Add click handler to generated pref template

* Add click handler to Lua prefs
Ensure that redundant generated code are now put in functions
and shared when possible.

This makes the genarated preferences_gen.h code lot smaller by
reducing the number of generated lines by 28%.

Before:

  $ wc ./build/bin/preferences_gen.h
    8764  24652 354853 ./build/bin/preferences_gen.h

After:

  $ wc ./build/bin/preferences_gen.h
    6353  17791 257350 ./build/bin/preferences_gen
We want to check against the "none" name to activate or not
the style mode and to pass or not the syle name.
On Wayland with CSD (Client-Side Decorations), the main window was
growing by the size of decorations after each restart. This happened
because gtk_widget_get_allocation() returns the size including window
decorations, while gtk_window_resize() expects size without decorations.

This commit fixes two issues:

1. Use gtk_window_get_size() instead of gtk_widget_get_allocation()
   in dt_gui_gtk_write_config() to save window size without decorations.
   This matches the behavior of gtk_window_resize() used in
   dt_gui_gtk_load_config().

2. Set GTK_WINDOW_TYPE_HINT_NORMAL for the main window on Wayland
   to ensure proper window resize behavior.

Fixes: darktable-org#19734
The trick here is to differenciate the tag completion form the
tooltip over the stars (toolbar top of lighttable). This fixes
on this later named tooltip a double border.
At the same time make the implementation consistent between the
export module and the print settings dialog.

Fix a UI discepency between the export and print settings where the
style mode was hidden in export and just disabled in print settings.
Ensure that redundant generated code are now put in functions
and shared when possible.

This makes the genarated preferences_gen.h code lot smaller by
reducing the number of generated lines by 45% compared to
5.2 release.

 5.2:

   $ wc ./build/bin/preferences_gen.h
     8764  24652 354853 ./build/bin/preferences_gen.h

 Before:

   $ wc ./build/bin/preferences_gen.h
     6353  17791 257350 ./build/bin/preferences_gen

 After:

   $ wc build/bin/preferences_gen.h
     4849  14649 213355 build/bin/preferences_gen.h
Fix regression found on circle shape looking as none active.

Closes darktable-org#19770.
The filmstrip current-image marker (black arrow) was appearing on
multiple thumbnails spaced by the number of visible items in the
filmstrip. This occurred because the w_cursor widget visibility
was tied only to thumb->active flag, which could be set on
multiple thumbnails during scrolling and thumbnail reuse.

The fix adds a double-check in _thumb_update_icons() to ensure
the cursor arrow is shown only when both conditions are met:
- thumb->active is TRUE
- thumb->imgid matches the first entry in active_images list

This ensures only the actual current/active image displays the
marker, eliminating visual confusion between selection highlight
and current-image indicator.

Fixes darktable-org#19772
current (Nov 2025) pango version in macports (1.55.0) breaks font choosing dialog (causes a crash) so using the previous available version (1.52.2) is a workaround until macports updates to latest pango version.
TurboGit and others added 30 commits January 6, 2026 13:22
* opencl_vng_demosaicer:
  VNG4 green correction for only_linear mode
  Some minimal VNG OpenCL performance improvement
  Fix misleading OpenCL oversize buffer log
Both below work with -d pipe
1. For OpenCL this didn't work for the first run on that device
2. While being here, also report that for cpu bound pipe runs
We test for RustiCl and use `-cl-fast-relaxed-math` as we do for nvidia and amd

Notes for the record:
1. RustiCL also gets a significant performance boost with this option, in some modules ~ 25%
2. This compiler option still is responsible for at least 2 issues
   a) some functions/macros implementations depend on the vendor.
      For ROCm we had issues when reading from image data containing either NaNs or unspecified data,
      feeding NaNs further up the pipe.
      nvidia-cuda and RustiCl seem to be more robust here, those NaNs were simply not observed.
   b) We have some differences between CPU and OpenCL output, at least some of them are related.
      See OpenCL compiler-option specs
_____________________________________________________
-cl-unsafe-math-optimizations
    Allow optimizations for floating-point arithmetic that (a) assume that arguments and results are valid, (b) may violate the IEEE 754 standard, (c) assume relaxed OpenCL numerical compliance requirements as defined in the unsafe math optimization section of the OpenCL C or OpenCL SPIR-V Environment specifications, and (d) may violate edge case behavior in the OpenCL C or OpenCL SPIR-V Environment specifications. This option includes the -cl-no-signed-zeros, -cl-mad-enable, and -cl-denorms-are-zero [26] options.

-cl-finite-math-only
    Allow optimizations for floating-point arithmetic that assume that arguments and results are not NaNs, +Inf, -Inf. This option may violate the OpenCL numerical compliance requirements for single precision and double precision floating-point, as well as edge case behavior.

-cl-fast-relaxed-math
    Sets the optimization options -cl-finite-math-only and -cl-unsafe-math-optimizations. This option causes the preprocessor macro __FAST_RELAXED_MATH__ to be defined in the OpenCL program.
Some constify and static leading underscores while being here.
We need both informations at runtime for some OpenCL codepath optimizings.

As dt_opencl_local_buffer_opt() returns an `int` we should define so.
…ation tags (darktable-org#20099)

* bugfix: add guard when accesssing fourth element of Exif.Olympus*.Gradation tags

It turns out that Olympus' Gradation info can consist of either three
or four integers.  Avoid crashing when there are only three....

Should fix darktable-org#20011.
Make conf defaults for collection filters match how they are reset via
_filtering_rest(_PRESET_FILTERS).

This fixes a disappearing images bug which manifests when darktable is
invoked for the first time with image files/directories on the command
line. Images disappeared in lighttable once they had been brought into
darkroom view. No images were visible in lighttable if the user exited
then reopened darktable.

Fixes darktable-org#20106
The 'advantage hint' should also be checked for a usable range for switching
workspaces.
According to OpenCL specs this is an unsigned int instead of size_t, so we should read that.
…gui->reset is set; don't call gui_update from gui_init; call gui_changed after gui_update; extracted repeated code into _update_redraw_dynamic_gui, _update_pivot_slider_settings; primaries selection remains visible even when "disable adjustments" is checked; use dt_ui_label_new
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.