Column/row click and click-drag should follow the same rules
USE CASE: WHAT DO YOU WANT TO DO?
I want to be able to be able to select rows without changing the selected columns and select whole rows (i.e. change column selection by selection all columns) by clicks & click-drags. I want to be able to do both types of selections.
STEPS TO REPRODUCE AN ISSUE (OR TRIGGER A NEW FEATURE)
In order to select whole rows, ignoring a column selection:
- Click-drag across some columns to select whole columns
- Click-drag across some rows to select whole rows
In order the select rows, respecting the column selection:
- Click-drag across some columns to select whole columns
- Single-click a starting row label
- Single-shift-click an ending row label
CURRENT BEHAVIOR
One example: Single-clicks of labels (or a tree-node) keep the opposing label selections. Click-drags of labels ignore the opposing label selections.
See comments below for other examples of inconsistent behavior.
EXPECTED BEHAVIOR
See the comment below which explains these desired modified behaviors:
- click when nothing is selected - select an entire single row/col
- click when something is selected - deselect current dim. selection and select a single row/col restricted to existing opposing dimension selection
- click-drag when nothing is selected - select a set of entire rows/cols
- click-drag when something is selected - deselect current dim. selection and select a set of rows/cols restricted to existing opposing dimension selection
- shift-click when nothing is selected - Same as "click when nothing is selected"
- shift-click when something is selected - select an additional set of rows/cols from closest selection to click restricted to existing opposing dimension selection
- shift-click-drag when nothing is selected - Same as "click-drag when nothing is selected"
- shift-click-drag when something is selected - select an additional set of rows/cols restricted to existing opposing dimension selection
- option-click when nothing is selected - No change in selection
- option-click when something is selected - deselect a single row/col
- option-click-drag when nothing is selected - No change in selection
- option-click-drag when something is selected - deselect a set of rows/cols
- command-click when nothing is selected - Same as "click when nothing is selected"
- command-click when something is selected - toggle a single row/col restricted to existing opposing dimension selection
- command-click-drag when nothing is selected - Same as "click-drag when nothing is selected"
- command-click-drag when something is selected - toggle a set of rows/cols restricted to existing opposing dimension selection
DEVELOPERS ONLY SECTION
SUGGESTED CHANGE (Pseudocode optional)
Rearrange the selection behaviors triggered for the different modifier clicks & click-drags. All the behaviors exist. They just need to be organized more consistently.
FILES AFFECTED (where the changes will be implemented) - developers only
- LabelView
- TRView
LEVEL OF EFFORT - developers only
minor
COMMENTS
There is definitely a duplicate BB issue out there. I think it mentions a modifier to select a "intersection". This issue more discretely defines the problem and how to solve it.
Comments (14)
-
reporter -
reporter - edited description
Forgot to say what should be deselected when the option-shift modifiers are held.
-
reporter - edited description
-
reporter -
assigned issue to
-
assigned issue to
-
reporter There are a few other inconsistencies I've discovered:
- Shift-clicking inside a selected area deselects the region from the closest edge
This was originally intended to mimmic shift-clicks of files in finder windows (in list or column view). While it accurately represents that behavior, I'm not sure that in the context of selecting/deselecting an image area. Maybe it does, but in terms of image editors, there's usually an "add selection" tool and a "remove selection" tool, and that may be more intuitive. Perhaps shift-click and shift-click-drag should only add selection. When used inside a selection, it should probably do nothing. Conversely...
- option-click only ever deselects one row/column
This should probably be the opposite of the shift-click and option-click-drag should be the opposite of shift-click-drag.
Command-click only toggles a single row/column and I think that's fine. But what's the intuitive way one would want narrow an entire row selection by clicked (or click-dragged columns). I.e. How would one positively select the combination of rows and columns that they want resulting in a contiguous rectangular selection using only 2 click-drags?
- Selecting an entire set of rows and then clicking a single column results in a selection of only the previously selected rows in the clicked column whereas a click-drag selects entire columns, ignoring the previously selected rows.
This is inconsistent and perhaps hints at the solution to the above question. A simple click-drag should respect previously selected elements of the other dimension.
Alright, here are the new requirements that I think would be more intuitive and consistent. This relates only to click interactions of column and row labels:
basic concepts:
- click (no modifier) creates a new selection in the dimension clicked (i.e. deselects existing selections in that dimension) and does not change an existing selection in the opposing dimension (exception: when nothing is selected, it selects all applicable)
- shift adds to an existing selection in the dimension clicked and does not change an existing selection in the opposing dimension (exception: when nothing is selected, it behaves like a regular click with no modifier)
- option removes from an existing selection in the dimension clicked and does not change an existing selection in the opposing dimension
- command precisely toggles individual selections in the dimension clicked (never in bulk)
- -drag - applies changes to only the rows/cols dragged over.
Shift and option clicks extend the closest selected/unselection region. The corresponding drags only affect the rows/cols dragged over. Command applies only to the specific rows/cols (i.e. does not extend).
Specifics:
- click when nothing is selected - select an entire single row/col
- click when something is selected - deselect current dim. selection and select a single row/col restricted to existing opposing dimension selection
- click-drag when nothing is selected - select a set of entire rows/cols
- click-drag when something is selected - deselect current dim. selection and select a set of rows/cols restricted to existing opposing dimension selection
- shift-click when nothing is selected - Same as "click when nothing is selected"
- shift-click when something is selected - select an additional set of rows/cols from closest selection to click restricted to existing opposing dimension selection
- shift-click-drag when nothing is selected - Same as "click-drag when nothing is selected"
- shift-click-drag when something is selected - select an additional set of rows/cols restricted to existing opposing dimension selection
- option-click when nothing is selected - No change in selection
- option-click when something is selected - deselect a single row/col
- option-click-drag when nothing is selected - No change in selection
- option-click-drag when something is selected - deselect a set of rows/cols
- command-click when nothing is selected - Same as "click when nothing is selected"
- command-click when something is selected - toggle a single row/col restricted to existing opposing dimension selection
- command-click-drag when nothing is selected - Same as "click-drag when nothing is selected"
- command-click-drag when something is selected - toggle a set of rows/cols restricted to existing opposing dimension selection This will be more consistent behavior. I will edit the issue to reflect this.
-
reporter - edited description
-
reporter For the code modification, there are 3 things to check for the nested conditional logic structure:
- Whether a selection already exists
- What modifier is held down (and modifier precedence: control (do nothing), shift, command, option)
- Whether it's a simple click or a drag.
-
reporter - changed status to open
Starting work.
-
reporter - edited description
-
reporter - changed status to resolved
This resolves issue
#340. Clicks of row/column labels with modifiers and/or drags are now consistent both among eachother and with selections of tree nodes.→ <<cset 29b6b80936fa>>
-
reporter - edited description
-
reporter This resolves issue
#340. Clicks of row/column labels with modifiers and/or drags are now consistent both among eachother and with selections of tree nodes.→ <<cset 29b6b80936fa>>
-
reporter - changed component to Selecting Data
-
reporter - removed milestone
Removing milestone: Selecting Data (automated comment)
- Log in to comment
Issue
#266was marked as a duplicate of this issue.