Active Spline SubPanel Disappears when editing Bezier Curve (when deleting vertex) #83948

Closed
opened 2020-12-19 05:08:12 +01:00 by William B · 14 comments

System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: Intel(R) Iris(R) Plus Graphics 640 Intel 4.5.0 - Build 26.20.100.7986

Blender Version
Broken: version: 2.92.0 Alpha, branch: master, commit date: 2020-12-18 23:13, hash: 6942dd9f49
Broken: version: 2.91.0, branch: master, commit date: 2020-11-25 08:34, hash: 0f45cab862

Short description of error
The active spline panel goes away completely during certain curve editing tasks. I have found older reports on the active spline, but those are marked resolved, and this is a specific simple new error that is slightly different.

Exact steps for others to reproduce the error
Make a new "General" blend file. Delete default cube. Add a Curve > Bezier. Tab to Edit. Subdivide curve. Delete the newly added (middle) vertex and at that moment the "Active Spline" goes away.

Re-subdividing doesn't bring the panel back, nor does extruding. Clearly the curve is still present (see image below), and the spline is still present and active, but just a vertex was removed on the curve (that wasn't even an original vertex).

image.png

Forgot to add that I absolutely love Blender and all the work you do!!

**System Information** Operating system: Windows-10-10.0.18362-SP0 64 Bits Graphics card: Intel(R) Iris(R) Plus Graphics 640 Intel 4.5.0 - Build 26.20.100.7986 **Blender Version** Broken: version: 2.92.0 Alpha, branch: master, commit date: 2020-12-18 23:13, hash: `6942dd9f49` Broken: version: 2.91.0, branch: master, commit date: 2020-11-25 08:34, hash: `0f45cab862` **Short description of error** The active spline panel goes away completely during certain curve editing tasks. I have found older reports on the active spline, but those are marked resolved, and this is a specific simple new error that is slightly different. **Exact steps for others to reproduce the error** Make a new "General" blend file. Delete default cube. Add a Curve > Bezier. Tab to Edit. Subdivide curve. Delete the newly added (middle) vertex and at that moment the "Active Spline" goes away. Re-subdividing doesn't bring the panel back, nor does extruding. Clearly the curve is still present (see image below), and the spline is still present and active, but just a vertex was removed on the curve (that wasn't even an original vertex). ![image.png](https://archive.blender.org/developer/F9517221/image.png) Forgot to add that I absolutely love Blender and all the work you do!!
Author

Added subscriber: @AquilaTheEagle

Added subscriber: @AquilaTheEagle

Added subscriber: @rjg

Added subscriber: @rjg

I can confirm the behavior. One of the handles or control points needs to be selected afterwards to get the panel back. The problem is that bpy.context.object.data.splines.active is not set after the middle control point / spline is deleted, hence there is no active spline. The panel drawn by DATA_PT_active_spline uses CurveButtonsPanelActive that has the following condition for poll:

    @classmethod
    def poll(cls, context):
        curve = context.curve
        return (curve and type(curve) is not TextCurve and curve.splines.active)

Hence the panel isn't displayed as curve.splines.active is None.

I can confirm the behavior. One of the handles or control points needs to be selected afterwards to get the panel back. The problem is that `bpy.context.object.data.splines.active` is not set after the middle control point / spline is deleted, hence there is no active spline. The panel drawn by `DATA_PT_active_spline` uses `CurveButtonsPanelActive` that has the following condition for poll: ``` @classmethod def poll(cls, context): curve = context.curve return (curve and type(curve) is not TextCurve and curve.splines.active) ``` Hence the panel isn't displayed as `curve.splines.active` is `None`.

I don't think this can considered a bug. The panel is meant to be displayed when there is an active spline and at that moment there isn't one.

This behavior is quite similar to the behavior of the active object with regards to selection and deletion.

I don't think this can considered a bug. The panel is meant to be displayed when there is an active spline and at that moment there isn't one. This behavior is quite similar to the behavior of the active object with regards to selection and deletion.

Changed status from 'Needs Triage' to: 'Archived'

Changed status from 'Needs Triage' to: 'Archived'
Author

Wait . . it is not that simple. On both the daily build and 2.91, selecting a handle, or doing anything does NOT bring the panel back for me.

  • Select a handle
  • tab out of edit mode
  • re-subdivide
  • extrude a vertex

Also, just deselecting all the handles in edit mode before deleting does not make the panel disappear.

Wait . . it is not that simple. On both the daily build and 2.91, selecting a handle, or doing anything **does NOT bring the panel back for me.** - Select a handle - tab out of edit mode - re-subdivide - extrude a vertex Also, just deselecting all the handles in edit mode before deleting does not make the panel disappear.

Changed status from 'Archived' to: 'Needs Triage'

Changed status from 'Archived' to: 'Needs Triage'

I can't reproduce the problem in 2.91 and 2.92 then. What I've done is the following:

  • Enter edit mode.
  • Use Segments > Subdivide.
  • Select the middle part and delete it. As a result the panel disappears.
  • Select one of the remaining control points / splines and the panel reappears.

That deselecting all handles doesn't make the panel disappear is expected, as just like e.g. with objects there will still be an active object. This a bit of a Blender quirk, but quite consistent across all object types (active != selected).

I can't reproduce the problem in 2.91 and 2.92 then. What I've done is the following: - Enter edit mode. - Use *Segments > Subdivide*. - Select the middle part and delete it. As a result the panel disappears. - Select one of the remaining control points / splines and the panel reappears. That deselecting all handles doesn't make the panel disappear is expected, as just like e.g. with objects there will still be an active object. This a bit of a Blender quirk, but quite consistent across all object types (active != selected).
Author

I think I tracked it down a little further . . If I BOX SELECT any vertex, it does NOT reappear. Also, pressing "a" to SELECT ALL after deleting does NOT make it reappear. I tried BOX SELECTING the whole handle (With the arms) or just the central vertex, but neither works.

But if I CLICK the center handle, then it DOES bring back the panel. I didn't expect that BOX SELECTING vs. CLICKING would have a different outcome here.

I think I tracked it down a little further . . If I BOX SELECT any vertex, it does NOT reappear. Also, pressing "a" to SELECT ALL after deleting does NOT make it reappear. I tried BOX SELECTING the whole handle (With the arms) or just the central vertex, but neither works. But if I CLICK the center handle, then it DOES bring back the panel. I didn't expect that BOX SELECTING vs. CLICKING would have a different outcome here.
Member

Added subscriber: @HooglyBoogly

Added subscriber: @HooglyBoogly
Member

Changed status from 'Needs Triage' to: 'Archived'

Changed status from 'Needs Triage' to: 'Archived'
Member

The confusion makes sense, but this really is expected, and it works like this elsewhere in Blender too. Imagine your object has 7 different splines and you box select all of them, which one should be active? Because the choice is completely arbitrary, Blender currently prefers to not make the choice at all. It's the same in object mode, edit mode, etc. Your object with one spline is just a trivial example of this same behavior. There is a task for this, #82359, but it will require some design discussion, as it's pretty fundamental behavior to change and has more implications that you might think.

The confusion makes sense, but this really is expected, and it works like this elsewhere in Blender too. Imagine your object has 7 different splines and you box select all of them, which one should be active? Because the choice is completely arbitrary, Blender currently prefers to not make the choice at all. It's the same in object mode, edit mode, etc. Your object with one spline is just a trivial example of this same behavior. There is a task for this, #82359, but it will require some design discussion, as it's pretty fundamental behavior to change and has more implications that you might think.
Author

Got it. Thanks for thinking about it! The multi-select makes sense. But BOX SELECTING a single spline or vertex should probably have the same behavior as clicking, right?

Got it. Thanks for thinking about it! The multi-select makes sense. But BOX SELECTING a *single* spline or vertex should probably have the same behavior as clicking, right?
Member

I suppose that could be a special case. Often it's simpler to keep behavior consistent though, so that it's more predictable in more complicated cases.

I suppose that could be a special case. Often it's simpler to keep behavior consistent though, so that it's more predictable in more complicated cases.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#83948
No description provided.