Dopesheet click-drag-selection deselects channels [e.g. breaking copy-pasting keys workflow] #70457

Closed
opened 2019-10-02 18:32:51 +02:00 by iurimonteiro · 30 comments

System Information
Operating system: Windows 10
Blender Version
Broken: (example: 2.80, edbf15d3c0, master, 2018-11-28, as found on the splash screen)

gif showing the error
https://imgur.com/a/J7wiido

Quick detour beforehand: copy-paste behaviour is dependent on row/channels selection:

  • if you have no row/channels selected, all copied keyframes will be pasted
  • if you have only a subset of row/channels selected, only keyframes matching this selection will be pasted [afaik this is expected behavior and was also the case in 2.79]

OK, now click-drag-box-selecting does not play very nice with this:

  • once started, all previously selected rows/channels will be deselected [thats pretty bad workflow-wise, box selection with B doesnt suffer from this]
  • if you happen to start the drag on a particular row/channel, only that row/channel will get selected [equally bad]

original report:
When you select with the mouse, click, drag and select the keys copy and paste (having more that 2 channels with keyframes like in the gif selected) he will only select 1 channel and only pastes 1 channel and not the 3. There are other work arounds like I show in the gif so that this doesnt happen like clicking B ou selecting from down to the channels you want.

**System Information** Operating system: Windows 10 **Blender Version** Broken: (example: 2.80, edbf15d3c044, master, 2018-11-28, as found on the splash screen) gif showing the error https://imgur.com/a/J7wiido Quick detour beforehand: copy-paste behaviour is dependent on row/channels selection: - if you have no row/channels selected, all copied keyframes will be pasted - if you have only a subset of row/channels selected, only keyframes matching this selection will be pasted [afaik this is expected behavior and was also the case in 2.79] OK, now click-drag-box-selecting does not play very nice with this: - once started, all previously selected rows/channels will be deselected [thats pretty bad workflow-wise, box selection with B doesnt suffer from this] - if you happen to start the drag on a particular row/channel, only that row/channel will get selected [equally bad] original report: When you select with the mouse, click, drag and select the keys copy and paste (having more that 2 channels with keyframes like in the gif selected) he will only select 1 channel and only pastes 1 channel and not the 3. There are other work arounds like I show in the gif so that this doesnt happen like clicking B ou selecting from down to the channels you want.
Author

Added subscriber: @iurimonteiro

Added subscriber: @iurimonteiro

Added subscriber: @brecht

Added subscriber: @brecht

Please provide all the requested information in the bug submission form.

In particular, a .blend file with exact steps to reproduce the problem, and the exact Blender version.

Please provide all the requested information in the bug submission form. In particular, a .blend file with exact steps to reproduce the problem, and the exact Blender version.
Author

blender 2.8

gif showing the error
https://imgur.com/a/J7wiido

Gif tell it all. Blendfile.blend

blender 2.8 gif showing the error https://imgur.com/a/J7wiido Gif tell it all. [Blendfile.blend](https://archive.blender.org/developer/F7786460/Blendfile.blend)

Blender 2.8 is not a specific version, probably you mean the Blender 2.80 official release.

Blender 2.8 is not a specific version, probably you mean the Blender 2.80 official release.
Author

yes

yes
Member

Added subscribers: @WilliamReynish, @JulianEisel, @lichtwerk

Added subscribers: @WilliamReynish, @JulianEisel, @lichtwerk
Member

Can confirm, seems like tweak-box-selecting multiple rows/channels doesnt work so well:

Quick detour beforehand: copy-paste behaviour is dependent on row/channels selection:

  • if you have no row/channels selected, all copied keyframes will be pasted
  • if you have only a subset of row/channels selected, only keyframes matching this selection will be pasted [afaik this is expected behavior and was also the case in 2.79]

OK, now click-drag-box-selecting does not play very nice with this:

  • once started, all previously selected rows/channels will be deselected [thats pretty bad workflow-wise, box selection with B doesnt suffer from this]
  • if you happen to start the drag on a particular row/channel, only that row/channel will get selected [equally bad]

CC @WilliamReynish
CC @JulianEisel

Can confirm, seems like tweak-box-selecting multiple rows/channels doesnt work so well: Quick detour beforehand: copy-paste behaviour is dependent on row/channels selection: - if you have no row/channels selected, all copied keyframes will be pasted - if you have only a subset of row/channels selected, only keyframes matching this selection will be pasted [afaik this is expected behavior and was also the case in 2.79] OK, now click-drag-box-selecting does not play very nice with this: - once started, all previously selected rows/channels will be deselected [thats pretty bad workflow-wise, box selection with `B` doesnt suffer from this] - if you happen to start the drag on a particular row/channel, only that row/channel will get selected [equally bad] CC @WilliamReynish CC @JulianEisel
Philipp Oeser changed title from Dopesheet Timeline select and copy frames with mouse to Dopesheet click-drag-selection deselects channels [e.g. breaking copy-pasting keys workflow] 2019-10-18 15:57:12 +02:00

Added subscriber: @dr.sybren

Added subscriber: @dr.sybren

Changed status from 'Confirmed' to: 'Needs User Info'

Changed status from 'Confirmed' to: 'Needs User Info'

Please attach a blend file that demonstrates the issue. The file attached earlier doesn't seem to have any animation at all.

Please attach a blend file that demonstrates the issue. The file attached earlier doesn't seem to have any animation at all.

Added subscriber: @iss

Added subscriber: @iss

Changed status from 'Needs User Info' to: 'Archived'

Changed status from 'Needs User Info' to: 'Archived'
Richard Antalik self-assigned this 2020-01-14 12:19:22 +01:00

Can not reproduce this issue.

Can not reproduce this issue.
Member

Changed status from 'Archived' to: 'Confirmed'

Changed status from 'Archived' to: 'Confirmed'
Member

Hold on:

#70457.blend

  • Open that file (three channels are selected -- bright white)
  • Just Ctrl + C then Ctrl + V > all keyframes are pasted
  • Open the file again (three channels are selected -- bright white)
  • click-drag box select (starting in the channel Z Location) around X, Y and Z keyframes
  • notice only the Z Location is highlighted, the other channels become unselected (dimmer, grey)
  • Ctrl + C then Ctrl + V > only the Z Location keyframes are pasted :(
Hold on: [#70457.blend](https://archive.blender.org/developer/F8277786/T70457.blend) - Open that file (three channels are selected -- bright white) - Just `Ctrl + C` then `Ctrl + V` > all keyframes are pasted - Open the file again (three channels are selected -- bright white) - click-drag box select (starting in the channel `Z Location`) around X, Y and Z keyframes - notice only the `Z Location` is highlighted, the other channels become unselected (dimmer, grey) - `Ctrl + C` then `Ctrl + V` > only the `Z Location` keyframes are pasted :(

I see now - so if you do box select by clicking on some channel and then dragging, only channel where you clicked on will be copied.

Took me some time even with your steps - Subconciously I try to never start tweak on clickable item.

I see now - so if you do box select by clicking on some channel and then dragging, only channel where you clicked on will be copied. Took me some time even with your steps - Subconciously I try to never start tweak on clickable item.
Member

Subconciously I try to never start tweak on clickable item

Point is, if your animation editor is filled with channels, you will always start click-drag-box-selecting on a channel...

> Subconciously I try to never start tweak on clickable item Point is, if your animation editor is filled with channels, you will **always** start click-drag-box-selecting on a channel...
Member

Could feedback from @WilliamReynish or @JulianEisel help here?

Could feedback from @WilliamReynish or @JulianEisel help here?
Richard Antalik was unassigned by Sybren A. Stüvel 2020-01-20 11:17:12 +01:00

This is really a UI team issue to triage. From my point of view this is a bug in the box select implementation, but I'm not on the UI team ;-)

This is really a UI team issue to triage. From my point of view this is a bug in the box select implementation, but I'm not on the UI team ;-)
Member

Added subscriber: @mont29

Added subscriber: @mont29
Member

This relates quite a bit to the discussion in #63994, and the changes I've recently done as followups see #57918.
So this is generally dangerous territory :)

However, I think we can easily fix this.
The issue seems to only be that click-on-empty-space-to-deselect is performed too early. From what I can see this report is entirely addressed by doing that on key release only (if no drag event was recognized). Earlier it would've been tricky to do that, which I guess is why it was done on key press, now it's trivial.

P1231: Potential fix for #70457

diff --git a/source/blender/editors/space_action/action_select.c b/source/blender/editors/space_action/action_select.c
index ca6efb5f69e..09a0c297d35 100644
--- a/source/blender/editors/space_action/action_select.c
+++ b/source/blender/editors/space_action/action_select.c
@@ -1718,7 +1718,7 @@ static int mouse_action_keys(bAnimContext *ac,
     /* reset selection mode for next steps */
     select_mode = SELECT_ADD;
 
-    if (wait_to_deselect_others && is_selected) {
+    if (wait_to_deselect_others) {
       ret_value = OPERATOR_RUNNING_MODAL;
     }
     else {

@brecht, @mont29, @WilliamReynish do you see any issue with always delaying deselecting to the release event for regular mouse-select?

Note that we can/should do the same change to other editors as well. 3D View, File-Browser and Outliner already behave that way.

This relates quite a bit to the discussion in #63994, and the changes I've recently done as followups see #57918. So this is generally dangerous territory :) However, I think we can easily fix this. The issue seems to only be that *click-on-empty-space-to-deselect* is performed too early. From what I can see this report is entirely addressed by doing that on key release only (if no drag event was recognized). Earlier it would've been tricky to do that, which I guess is why it was done on key press, now it's trivial. [P1231: Potential fix for #70457](https://archive.blender.org/developer/P1231.txt) ``` diff --git a/source/blender/editors/space_action/action_select.c b/source/blender/editors/space_action/action_select.c index ca6efb5f69e..09a0c297d35 100644 --- a/source/blender/editors/space_action/action_select.c +++ b/source/blender/editors/space_action/action_select.c @@ -1718,7 +1718,7 @@ static int mouse_action_keys(bAnimContext *ac, /* reset selection mode for next steps */ select_mode = SELECT_ADD; - if (wait_to_deselect_others && is_selected) { + if (wait_to_deselect_others) { ret_value = OPERATOR_RUNNING_MODAL; } else { ``` @brecht, @mont29, @WilliamReynish do you see any issue with always delaying deselecting to the release event for regular mouse-select? *Note that we can/should do the same change to other editors as well. 3D View, File-Browser and Outliner already behave that way.*

I'm fine with doing this specifically for the dopesheet, but not necessarily everywhere else.

We should avoid click delays whenever possible. I would only make the same change in other places if it solves a specific problem, not for consistency. In the 3D viewport we already have this delay with the box select tool, but not the tweak tool for example.

I'm fine with doing this specifically for the dopesheet, but not necessarily everywhere else. We should avoid click delays whenever possible. I would only make the same change in other places if it solves a specific problem, not for consistency. In the 3D viewport we already have this delay with the box select tool, but not the tweak tool for example.

Sounds like a good solution to me.

Sounds like a good solution to me.

Maybe I don’t understand the issue completely, but I have a hard time seeing how setting it to a click is needed. We don’t have this problem with keyframes or strips - only the channel lists, so I don’t see why we can fix this without the click delay trade off.

Part of the issue, as I see it, is also just that our theme is bad. It’s very very hard to see which channels are selected, which can cause unneeded confusion.

Maybe I don’t understand the issue completely, but I have a hard time seeing how setting it to a click is needed. We don’t have this problem with keyframes or strips - only the channel lists, so I don’t see why we can fix this without the click delay trade off. Part of the issue, as I see it, is also just that our theme is bad. It’s very very hard to see which channels are selected, which can cause unneeded confusion.
Member

@brecht re other editors - I remember complaints about the current behavior. It becomes especially annoying if you start box selecting (selection changes) and abort. The selection changed even though you aborted the select action. Not a huge issue since you can undo, but together with the consistency argument I'd say it's enough to justify the slight delay. It's not like I had huge issues with keeping the current behavior, but it does feel a bit weak to me.

@brecht re other editors - I remember complaints about the current behavior. It becomes especially annoying if you start box selecting (selection changes) and abort. The selection changed even though you aborted the select action. Not a huge issue since you can undo, but together with the consistency argument I'd say it's enough to justify the slight delay. It's not like I had huge issues with keeping the current behavior, but it does feel a bit weak to me.

After discussing with @JulianEisel, I agree this seems ok. I thought it would change everything to use CLICK events, but it's just the deselection that will happen on mouseup, which seems fine.

After discussing with @JulianEisel, I agree this seems ok. I thought it would change everything to use CLICK events, but it's just the deselection that will happen on mouseup, which seems fine.
Member

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Julian Eisel self-assigned this 2020-01-29 12:41:05 +01:00
Member

Should be resolved with 395dfff103.

Should be resolved with 395dfff103.
Member

Similar issue in the Sequencer, see #73453 (Sequencer: Selecting playhead deselects all selected strips)

Similar issue in the Sequencer, see #73453 (Sequencer: Selecting playhead deselects all selected strips)
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
7 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#70457
No description provided.