47894 Commits

Author SHA1 Message Date
Pablo Vazquez
537e264b70 UI: Add icons to Set Handle Type menu
Some checks failed
Close GitHub Pull Requests / Close Pull Requests (push) Has been cancelled
Add icons to curves "Set Handle Type" menu, (both legacy Curve and new
Curves). Matching those in the Curve widgets.

Graph Editor already uses icons for that menu.

See PR for details and screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/148322
2025-10-18 18:45:44 +02:00
W_Cloud
b95374418c UI: Add icons to Object data-block search template
Add object type icons to the object data-block search menu,
makes it easier to distinguish at a glance the objet type other
than by their name.

See PR for screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/148135
2025-10-18 17:28:15 +02:00
Pratik Borhade
40298b66da Merge branch 'blender-v5.0-release' 2025-10-18 16:47:28 +05:30
Pratik Borhade
74586023fb Fix #147698: Prevent drag drop inside packed nodetree interface
When node tree is packed, prevent drag-drop operation from rearranging
the socket/panel inside node-tree interface.

Pull Request: https://projects.blender.org/blender/blender/pulls/147794
2025-10-18 13:14:39 +02:00
Pablo Vazquez
88c2c67ae4 UI: Color Interpolation Icons
Color the interpolation icons matching the new interpolation theme
settings added in 75eaecf350

This makes a clearer connection with the lines drawn in Dope Sheet.

See PR for details and screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/148215
2025-10-18 00:05:23 +02:00
Harley Acheson
3de61b7f7f Merge branch 'blender-v5.0-release' 2025-10-17 14:53:20 -07:00
Harley Acheson
e259769e9d Fix #148143: Increase Curve Mapping Point Size
This PR increases the points shown on the Curve Mapping widget a bit,
with the selected ones ever larger. This is more in line with what we
saw in 4.5. This also draws the points with AA by changing to a
different shader - which means drawing the selected ones separate from
the unselected ones.

Pull Request: https://projects.blender.org/blender/blender/pulls/148176
2025-10-17 23:51:46 +02:00
Philipp Oeser
cc44420912 Cleanup: rename region_evaulate_visibility > region_evaluate_visibility
_No response_

Pull Request: https://projects.blender.org/blender/blender/pulls/148268
2025-10-17 19:44:59 +02:00
Falk David
e1ca851276 Merge branch 'blender-v5.0-release' 2025-10-17 17:22:16 +02:00
Casey Bianco-Davis
316fe67295 Fix #147756: Grease Pencil: Join Operator crash because of resolution attribute
When strokes from to different layers get joined together, if one layer
had the `resolution` attribute and the other did not. The new
`resolution` attribute would be left with uninitialized values and then
a crash would happen.

This fixes this by filling all attributes that didn't exist with their
default value.

This also ensures that when strokes are removed, the drawing is
tagged as dirty.

Pull Request: https://projects.blender.org/blender/blender/pulls/147948
2025-10-17 17:21:33 +02:00
Philipp Oeser
11001624ff Merge branch 'blender-v5.0-release' 2025-10-17 15:06:41 +02:00
Philipp Oeser
1de7b4372c Fix #148229: Vertex weights in wrong groups after joining meshes
Caused by 113d91aba8

Code first gathers a list of all vertexgroups on all objects.
Then it iterates the objects to join, and for each of them, puts their
vertexgroups in an index map.
However (by a typo?), it was doing it for the `active mesh` (instead of
the one currently visited) over and over again, resulting in weights
from other objects written to `def_nr` from groups of the `active mesh`.

Now corrected.

Pull Request: https://projects.blender.org/blender/blender/pulls/148259
2025-10-17 15:06:24 +02:00
Aras Pranckevicius
facb17b0e3 Cleanup: BLI ENUM_OPERATORS cleanup/robustness
BLI code for enums that are meant to be used as "bit flags" defined
an ENUM_OPERATORS macro in BLI_utildefines.h. This cleans up things
related to said macro:

- Move it out into a separate BLI_enum_flags.hh header, instead of
  "random bag of things" that is the current place,
- Update it to no longer need manual indication of highest individual
  bit value. This originally was added in a31a87f89 (2020 Oct), in
  order to silence some UBSan warnings that were coming
  from GPU related structures (looking at current GPU code, I don't
  think this is happening anymore). However, that caused actual
  user-visible bugs due to incorrectly specified max. enum bit value,
  and today 14% of all usages have incorrect highest individual
  bit value spelled out.
    - I have reviewed all usages of operator ~ and none of them are
      used for directly producing a DNA-serialized value; all the
      usages are for masking out other bits for which the new ~
      behavior that just flips all bits is fine.
- Make the macro define flag_is_set() function to ease check of bits
  that are set in C++ enum class cases; update existing cases to use
  that instead of three other ways that were used.

Pull Request: https://projects.blender.org/blender/blender/pulls/148230
2025-10-17 12:57:50 +02:00
Philipp Oeser
3dd5da4e9c Merge branch 'blender-v5.0-release' 2025-10-17 10:23:06 +02:00
Philipp Oeser
48dc788e6d Fix #145488: UI: Flipped rows/columns in custom matrix property
Since matrices are usually indexed **row first**, displaying matrices in
the UI seems flipped.
They are stored as flat arrays.
When `matrix[1][0]` is accessed via python, the logic from
`pyrna_py_from_array_index` will actually look up index 2 in the flat
array (rightfully so).

But UI code was flipped in that regard.
The second value in the flat array **should** show at row 1 column 0,
but it currently doesnt.

Now (hopefully) handled properly (not only in `ui_item_array` but also
made code in `ui_item_rna_size` detect proper row count for a `height`)

Pull Request: https://projects.blender.org/blender/blender/pulls/148197
2025-10-17 10:22:51 +02:00
Philipp Oeser
6deb41fda2 Merge branch 'blender-v5.0-release' 2025-10-17 10:21:16 +02:00
Philipp Oeser
fca5bcbe46 Fix #146250: Some gizmos/widgets are continuously running updates
Reported for the geometry nodes gizmos, but in general `cage2d`,
`cage3d` and `arrow` were affected (so for example Forcefield arrows, UV
editing transform tool, Lamp angle gizmo, ...)

`gizmo_cage3d_modal`, `gizmo_cage2d_modal` and `gizmo_arrow_modal` add a
`WM_event_add_mousemove` which ... lets the modal run even if the mouse
does **not** move...

This seems to date back to d8f931c9b7 in the arrow gizmo, others
probably just copied from there (not the DialGizmo though), did not do
further git archeology.

Propose to just remove `WM_event_add_mousemove` (even though there
_might_ still be reasons for this -- could not spot any though...)

Pull Request: https://projects.blender.org/blender/blender/pulls/146310
2025-10-17 10:21:01 +02:00
Philipp Oeser
ab0ab3cf3b Merge branch 'blender-v5.0-release' 2025-10-17 10:19:28 +02:00
Philipp Oeser
6536fd80fc Fix #144359: Scrolled down Asset Shelf prevents drag & drop in viewport.
The issue is in the `ED_region_overlap_isect_` family of functions I
believe. Their purpose is to check if a coordinate is in the
"non-transparent" or opaque parts of the overlapping region.

These are getting event coordinates (in window space), converted to
region relative space (substracting region->winrct).

Comparison is in view space (through `UI_view2d_region_to_view_y`)
to account for scrolling and zooming.

The thing where it goes wrong is that we are actually comparing to
`region->v2d.tot` (this can be huge, most of it not visible), where I
think we should be comparing to `region->v2d.cur` (that is the part that
is actually visible...)

Swapping `region->v2d.tot` with `region->v2d.cur` is what this PR does.

Pull Request: https://projects.blender.org/blender/blender/pulls/146032
2025-10-17 10:19:15 +02:00
Philipp Oeser
d99aac494e Merge branch 'blender-v5.0-release' 2025-10-17 10:17:02 +02:00
Philipp Oeser
77819d77d2 Fix #146251: Moving masks via transform system does not update gizmos
Oversight in 4bede1b555

`transformApply` / `transformEnd` already gives us a `NC_MASK |
NA_EDITED` notifier (via `viewRedrawForce`), so listen to that in
`image_main_region_listener`.

NOTE: alternatively, we could send an appropriate notifier in
`special_aftertrans_update__mask` (or remove the condition from the one
that is already there), with the difference that the gizmo would only
update after the transform is confirmed -- which may or may not be
desired

Pull Request: https://projects.blender.org/blender/blender/pulls/146292
2025-10-17 10:16:49 +02:00
Campbell Barton
829d2074a6 Merge branch 'blender-v5.0-release' 2025-10-17 15:14:32 +11:00
Eitan Traurig
070344c06f Fix #147924: Move on Axis dynamic uses tile size instead of dynamic size
Ref !147933
2025-10-17 15:10:12 +11:00
Sean Kim
e46bbfc2e7 Merge branch 'blender-v5.0-release' 2025-10-16 13:44:27 -07:00
Sean Kim
fd3d9f2fa2 Fix #148064: Crash when using grease pencil fill tool
The recently introduced size, strength, and jitter pressure curves
affect most paint code. This exposed further odd behavior inside
`paint_brush_update` where the size pressure curve was being evaluated
even if the brush's size did not vary with pressure.

To fix this issue, this commit clarifies a few comments and updates the
code flow such that cached input values and evaluated pressure values
are used more consistently.

Pull Request: https://projects.blender.org/blender/blender/pulls/148077
2025-10-16 22:43:32 +02:00
Jacques Lucke
01f020ca23 Merge branch 'blender-v5.0-release' 2025-10-16 19:22:14 +02:00
Jacques Lucke
04fcc4126e Fix #147282: double clicking on value enters node group
This fix makes the enter-node-group operator pass through when interacting with a button.

The code is by @JulianEisel.

Pull Request: https://projects.blender.org/blender/blender/pulls/148133
2025-10-16 19:21:12 +02:00
Jacques Lucke
96d2f3430f Merge branch 'blender-v5.0-release' 2025-10-16 19:20:23 +02:00
Clément Foucault
6b0f57facf Fix #142285: 3D cursor placement ignores unselectable objects
This was caused by 3dfec1ff73
which introduce the new behavior. This was to fix workflows
using a lot of semi-transparent objects which made nagivation
difficult.

This patch first roll back to the previous behavior: The
unselectable object will affect depth-aware operators.

This patch introduces a new visibility property to remove
the influence of objects in all depth picking operations
and selection operations. However the object is still
selectable through non-drawing selection operators
(e.g. select by material) and through the outliner.
This is to adress the aforementionned navigation issues.

Pull Request: https://projects.blender.org/blender/blender/pulls/146706
2025-10-16 19:17:18 +02:00
Jacques Lucke
1a5daab0d3 Merge branch 'blender-v5.0-release' 2025-10-16 18:37:47 +02:00
quackarooni
ce88d773db Fix: Nodes: bad ui for adding panel toggles
Adding panel toggles in nodegroups have somewhat of a UX antipattern. When
running the operator, it checks for conditions that indicate it should not run,
and if those are hit, it cancels execution and mentions the invalid condition in
the footer bar.

This is not ideal, the user should not have to call the operator to find out
whether it can be called.

Why it got implemented like this is likely a consequence of all interface items
being the same "New Item" operator. Poll functions cannot use operator
properties, so variants of the same operator cannot check for different
conditions for execution.

This is a problem for panel toggles, as they have more restrictions to when they
can be added that don't apply to other interface items.

This patch creates a separate operator for adding panel toggles. This allows the
condition checks to be implemented in the poll function, which enables greying
out the operator buttons and showing on tooltips what condition is invalid.

Pull Request: https://projects.blender.org/blender/blender/pulls/146379
2025-10-16 18:37:22 +02:00
Julian Eisel
2e76bb47bb Refactor: BKE: Move icon header to C++
Was trying to use a C++ type (`blender::Span`) in the header but
couldn't. I would rather not use a less safe raw pointer to a buffer.

Pull Request: https://projects.blender.org/blender/blender/pulls/148214
2025-10-16 17:45:26 +02:00
Lukas Tönne
443ced685e Merge branch 'blender-v5.0-release' 2025-10-16 12:15:44 +02:00
Christoph Lendenfeld
f4fd52796f Fix #148129: Bone Collection select/deselect not working
The bone collection operator was not updated to handle the new flag
which is now on the `bPoseChannel` instead of the `Bone`.

For this to work, the operator now needs the `bArmature` as well as the `Object`
and they need to be in sync. Additional code was added to the poll function
to ensure this is the case.

As a bonus, when working with multiple armatures this now works as expected
where only the bones of the active armature are selected even if the armature is
shared. The active object is determined by the last bone clicked.

Pull Request: https://projects.blender.org/blender/blender/pulls/148185
2025-10-16 11:34:21 +02:00
Campbell Barton
5c665b7080 Merge branch 'blender-v5.0-release' 2025-10-16 17:37:16 +11:00
Campbell Barton
094fa5c05c Merge branch 'blender-v5.0-release' 2025-10-16 17:37:12 +11:00
Campbell Barton
41a65b1ed7 Merge branch 'blender-v5.0-release' 2025-10-16 17:37:07 +11:00
Campbell Barton
2ca0c50397 Fix #148025: UV Overlap select doesn't work with select sync enabled
- Use uv_select_flush_from_tag_face to handle selection.
- Skip updating objects with no overlapping faces.

Ref !148181
2025-10-16 17:35:16 +11:00
Campbell Barton
5850fad63a Fix: UV box/lasso/circle selection fails with edge & face modes enabled
When select-sync was used with both edge & face modes enabled,
vertex selection logic was used which resulted in no visible selection.

Now edge selection is used when both edge and face modes are enabled.

Ref !148181
2025-10-16 17:35:16 +11:00
Campbell Barton
2808c411d7 Fix #148026: Box select pinned UV's fails with select-sync enabled
Implement pinned with select-sync (technically not a bug),
more an oversight in !138197.

Some subtle functional changes have been made.

- Select pinned now only works in vertex select mode
  since previously it was possible to select vertices in edge/face modes
  where the selection wasn't displayed.
- The island selection option is ignored when selecting pinned.
- The select pinned operator wasn't working with select sync edge/face
  modes. Exits with an error instead.

Ref !148181
2025-10-16 17:35:16 +11:00
Richard Antalik
eae3eabf53 Merge branch 'blender-v5.0-release' 2025-10-15 21:47:07 +02:00
Richard Antalik
8a0622ac68 Fix #148121: Thumbnails are refreshed when adding keyframes to strip
When strip property was animated, all caches were wiped. However, it is
not necessary to wipe raw cache or thumbnail cache.

Pull Request: https://projects.blender.org/blender/blender/pulls/148162
2025-10-15 21:46:30 +02:00
Bastien Montagne
39cbeee0ce Merge branch 'blender-v5.0-release' 2025-10-15 16:36:55 +02:00
Damien Picard
90e2dfd2e3 I18n: Translate dynamic operator descriptions
The descriptions for `POSELIB_OT_asset_modify` and
`GEOMETRY_OT_execute_node_group` are dynamic. They were already
extracted, but the translation did not happen in the description
function.

This commit adds the appropriate `TIP_` translation macro.

Reported by Ye Gui in #43295.
2025-10-15 16:26:46 +02:00
Damien Picard
c36c103389 I18n: Translate "Unassigned Node Tools" tool node menu
The "Unassigned Node Tools" menu type is declared manually in a
function, and its label is not automatically translated. This commit
extracts it using `N_()`. Note that its description was already
extracted the same way.

Reported by Ye Gui in #43295.
2025-10-15 16:26:46 +02:00
Julian Eisel
ba71402e24 Fix: Undefined behavior when using UI list or tree-view scrollbar
A scrollbar button would be cast to a number-slider button, and values from
this memory used for scrollbar specific calculations. Looks like an error from
809499a3d0.

In practice the error wouldn't be visible, since the actually used value would
by chance be the intended value, from what I can tell. That's because
`uiButNumberSlider.step_size` and `uiButScrollBar.visual_height` have the same
memory offset within the button memory.
2025-10-15 16:21:58 +02:00
Julian Eisel
f86c042724 Fix: Undefined behavior when using UI list or tree-view scrollbar
A scrollbar button would be cast to a number-slider button, and values from
this memory used for scrollbar specific calculations. Looks like an error from
809499a3d0.

In practice the error wouldn't be visible, since the actually used value would
by chance be the intended value, from what I can tell. That's because
`uiButNumberSlider.step_size` and `uiButScrollBar.visual_height` have the same
memory offset within the button memory.
2025-10-15 16:20:39 +02:00
Bastien Montagne
c561850897 Merge branch 'blender-v5.0-release' 2025-10-15 11:44:29 +02:00
Bastien Montagne
3f7db9c4b7 Fix #147759: Do not delete a library if it contains the active scene.
Supporting this is fairly involved (see #147759 comments and !147827),
so for 5.0 and active LTSs releases, best is to not delete a library if
it contains the active scene.

Pull Request: https://projects.blender.org/blender/blender/pulls/147831
2025-10-15 11:40:29 +02:00
Pratik Borhade
8712909ae1 Merge branch 'blender-v5.0-release' 2025-10-15 14:37:28 +05:30