Age | Commit message (Collapse) | Author |
|
Picking is disabled
Affected were (at least)
- Select Linked pick
- Select Shortest Path
Was originally caused by rB8b347fc2cdc6 [which got improved in
rBfc8a7a44b200 - but only partially].
After removal of BONESEL_NOSEL we have to filter out -1 from the hits for
any bone picking it seems (since armature drawing uses this).
In rBfc8a7a44b200, this was done for 'ED_armature_edit_select_pick' (or
'get_nearest_editbonepoint' precisely), now do this for
'ed_armature_pick_bone_impl' as well.
Reviewers: campbellbarton
Maniphest Tasks: T81200
Differential Revision: https://developer.blender.org/D9080
|
|
Refactor `ed_screen_context()` to use `GHash` lookups instead of a
sequence of string comparisons. This should provide a nice speedup,
given that the hash for `member` only has to be computed once instead of
matching it to each possible string.
Reviwed by: brecht
Differential Revision: https://developer.blender.org/D9090
|
|
Refactor `ed_screen_context()` to call separate functions, instead of
having the entire functionality in one function. Each function now only
retrieves the data it needs from the context. Furthermore, some string
comparisons are removed.
No functional changes.
Reviwed by: brecht
Differential Revision: https://developer.blender.org/D9090
|
|
node_draw_link_straight existed in header files without a body
|
|
Version patching userpref.blend wasn't using the correct version,
causing settings not to be properly updated.
This seems the likely cause of T70196 and similar bugs.
|
|
.blend file.
Relying on pointer addresses across different data-blocks is extremely
not recommended (and should be strictly forbidden ideally), in
particular in direct_link step of blend file reading.
- It assumes a specific order in reading of data, which is not ensured
in future, and is in any case a very bad, non explicit, hidden
dependency on behaviors of other parts of the codebase.
- It is intrinsically unsafe (as in, it makes writing bad code and making
mistakes easy, see e.g. fix in rB84b3f6e049b35f9).
- It makes advanced handling of data-blocks harder (thinking about
partial undo code e.g., even though in this specific case it was not
an issue as we do not re-read neither windowmanagers nor worspaces
during undo).
New code uses windows' `winid` instead as 'anchor' to find again proper
workspace hook in windows at read time.
As a bonus, it will also cleanup the list of relations from any invalid
ones (afaict it was never done previously).
Differential Revision: https://developer.blender.org/D9073
|
|
|
|
|
|
Left/right arrow keys can refine the completion,
this wasn't redrawing and there was an off-by-one error checking
the next character.
|
|
- Remove MMB for activating an auto-complete item (use LMB instead).
- Update on cursor motion.
|
|
Use POINTER_AS_INT instead
Reviewed By: HooglyBoogly
Differential Revision: https://developer.blender.org/D9083
|
|
When a Shape Key is active, use the PBVH deformed coordinates for the
preview.
Reviewed By: sergey
Maniphest Tasks: T80873
Differential Revision: https://developer.blender.org/D8921
|
|
When using anchored strokes, inbetween events are not needed since there
is no stroke path to be reconstructed. Handling the inbewteen events are
only producing unnecessary updates, creating performance issues.
Reviewed By: sergey, brecht
Differential Revision: https://developer.blender.org/D9053
|
|
This simulation area mode moves the active area with the brush. When
enabled, the cloth brush has no restrictions on stroke length, area or
mesh vertex count.
In order to work, this enables PBVH nodes dynamically for simulation as
the stroke location moves and builds the constraints for new nodes
during the stroke. When a node is not inside the simulated area, all the
constraints that were created for it and vertex collisions are not
computed. The simulation limits falloff areas and constraints tweaking
control how the simulated and no simulated nodes blend.
Reviewed By: sergey, zeddb
Differential Revision: https://developer.blender.org/D8726
|
|
This was already changed for Material nodetrees on duplication in
rBa75ac18638f4.
Since it is not obvious from the UI how change World actions - and to be
consistent with Material actions, it is best to copy the action as the
default behavior.
So use generic BKE_id_copy functions with LIB_ID_COPY_ACTIONS flag [which
also enables us to get rid of `BKE_world_copy`]
Note: taking the User Preference `USER_DUP_ACT` into account here (for
both material and world actions) could be a followup step.
Maniphest Tasks: T81248
Differential Revision: https://developer.blender.org/D9046
|
|
Most collection operations should not be allowed when either the scene
or the parent collection are linked or liboverrides.
This commit adds more stricter checks in both polling and execution
aspects of several related operators.
Fix T81282: Crash on instance to scene of a collection of a linked scene.
|
|
Error in 9b6c5268bc20. Also move variable declaration to where it's
used to reduce confusion.
|
|
It looks like this code was left over from tabbed panels in the
properties editor. It wasn't used anywhere except for in one line of
the horizontally-aligned panel code that was recently removed.
Differential Revision: https://developer.blender.org/D8651
|
|
Instead of indenting the entire functional block, check for the error
case and the supported case early to make the code more readable.
|
|
Cleanup old tracker task format to the new. e.g: [#34039] to T34039
Ref D8718
|
|
|
|
The "UI_panel_set_expand_from_list_data" doesn't need to be in the
public API since it's just called every time an instanced panel is added.
This commit just sets the expansion automatically and adjusts some
naming to account for the moved function.
|
|
It's necessary to check if the panels are active before accessing their
data. Thanks to @ankitm for reporting this.
|
|
|
|
Before this change, when users switch from edit mode to sculpt mode, the
entire mesh would be visible. Even if in the edit mesh mode part of it was
set to invisible.
With this change the visibility is preserved, by creating a separate face set
for the visible and invisible parts of the mesh and setting their initial visibility.
Implementation details: This adds a function to initialize a new Face Set
datalayer taking the current mesh visibility into account which is stored
in the ME_HIDE flag of the vertices.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D8901
|
|
This tool projects all vertices to the right of the plane defined by the
line gesture towards the plane. By doing this, this tool can create cuts
and plane surfaces in the mesh without modifying the geometry or using
boolean operations, so it is much faster than bisecting the mesh for
cases where the geometry was going to be remeshed afterwards.
Added as experimental as it does not have icon.
Reviewed By: sergey, Severin
Differential Revision: https://developer.blender.org/D9021
|
|
Although I haven't seen this cause any visible errors, there is some
incorrect handling for setting panel expansion during search:
- Properly check if child panel is active first
- Don't stop traversal at headerless panels that could theoretically
have children
|
|
Draw dashed lines for object child hierarchies in the outliner. This
makes the difference between collection and object hierarchies more
clear. Dashes are also consistent with viewport relationship lines.
Differential Revision: https://developer.blender.org/D8997
|
|
`ED_preview_icon_render()` owns the `id_copy` localized ID, so it has to
free it itself.
|
|
The layout pointer is quite ugly, but currently needed to work around
design issues. At least it should be cleared to avoid use-after-free.
|
|
Simplify `anim_flush_channel_setting_up()` by flipping conditions and
returning early. This makes it easier to understand what is actually
happening in the code.
No functional changes.
|
|
Split up `ANIM_flush_setting_anim_channels()` into smaller functions. This
makes it easier to understand how it works, and makes future improvements
also easier.
No functional changes.
|
|
|
|
In the 3D view sidebar, the active tool settings panel can be pinned to other
categories, and in those other categories it doesn't redraw when the active
tool changes. This commit checks for pinned panels from the "Tool" category
when checking whether to redraw.
Note that the relatively expensive string comparison is only done for
currently visible pinned panels.
Differential Revision: https://developer.blender.org/D9012
|
|
This adds support for line gesture to SculptGestureContext and
implements a Mask Line tool, which affects everything to the right of a plane
defined by the straightline gesture.
For this to work, a new WM_gesture_straightline_oneshot_modal is needed
which only runs exec when the gesture is over.
Added as experimental as it does not have icon.
Reviewed By: Severin
Differential Revision: https://developer.blender.org/D8722
|
|
the first material
|
|
|
|
Where the if statement was just a check for an error or an unhandled
condition and there are no else statements, the rest of the function
doesn't need to be indented.
|
|
Also use "r_" prefix for return arguments in a few places.
|
|
These breadcrumbs used to be a panel in 2.79 and 2.80 development.
If a file was saved in those versions, and the panels rearranged in a
version that didn't have this panel, its sortorder would be changed
even though it wasn't visible or even used in that version.
A simple fix is to use a new ID name for the new version of this
panel in 2.91. "Buttons" is an old name anyway.
|
|
- Declare variables where initialized
- Return early in some cases
- Use "i" as an iteration index variable
- Use bool instead of int where applicable
|
|
Error introduced in rB388b9162469650c
|
|
This was the behavior in old versions of blender.
During a transformation operation, when pressing a contrain key, the chosen
orientation is that of the scene.
If you press the same key, the orientation changes to Global or Local.
However, if you choose another contrain axis with the orientation changed,
the orientation does not return to the set for the scene.
It remains Global or Local.
Now when changing a contrain axis, no matter what the current orientation is,
it always returns to the scene orientation.
|
|
Actions are either locked to a specific ID type, or "floating". Actions
in the floating state are now locked when they are assigned to an ID block.
Previously (rB94b99b5d4a7c20cf2) this was done at evaluation time, which
caused various problems:
- The ID type was set on the evaluated copy, and inconsistently flushed
back to the original.
- A newly created Action could not be assigned to an Action constraint,
unless a depsgraph evaluation was be forced first.
This is now resolved by calling `BKE_animdata_set_action()` to set the
action (instead of direct assignment) where possible, and calling
`BKE_animdata_action_ensure_idroot()` otherwise.
Manifest Task: https://developer.blender.org/T80986
|
|
With this change `outliner_draw.c` does not have to be
edited anymore when a new modifier is added.
Reviewers: campbellbarton
Differential Revision: https://developer.blender.org/D8998
|
|
|
|
The operator has some problems with Undo, so better put it in
experimental for now.
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D9007
|
|
The main panel drawing funciton should be in the "Drawing" section.
|
|
|
|
Since the search is applied all in one phase, there is no need to store
a reference to the search filter in every uiBlock. Instead just pass it
as an argument to UI_block_apply_search_filter.
|