-
Notifications
You must be signed in to change notification settings - Fork 8.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix marking of new selection start #9727
Conversation
@zadjii-msft - sorry 🤦Do we have a task for UT coverage? I volunteer to do it (the moment I get a week with more than 5 minutes to write code). |
Haha, don't worry about it. This is just one of the absolute worst bits of spaghetti code in the entire Terminal.
I actually caught this because I'm currently working on unittests over in #6842. The whole Hopefully, I haven't regressed things too bad. I'll definitely be adding the list here to my "to check" list, but my initial PR will probably have tests for only a few of them. I'll add the rest to #7001 I'm hoping to get that submitted for review at the start of 1.9 and spend the entire cycle reviewing and iterating on anything that might have regressed. |
Thanks 😄 |
@msftbot merge this in 2 minutes |
Hello @DHowett! Because you've given me some instructions on how to help merge this pull request, I'll be modifying my merge approach. Here's how I understand your requirements for merging this pull request:
If this doesn't seem right to you, you can tell me to cancel these instructions and use the auto-merge policy that has been configured for this repository. Try telling me "forget everything I just told you". |
## PR Checklist * [x] Closes #9725 * [x] CLA signed. * [ ] Tests added/passed * [ ] Documentation updated. * [ ] Schema updated. * [ ] I've discussed this with core contributors already. ## Validation Steps Performed * [x] single click = no selection * [x] single click and drag = selection starting from first point * [x] single click in unfocused pane and drag = focus pane, selection starting from first point * [x] double-click = selects a whole word * [x] triple-click = selects a whole line * [x] double-click and drag = selects a whole word, drag selects whole words * [x] triple-click and drag = selects a whole line, drag selects whole lines * [x] Shift single-click = defines start point * [x] second Shift single-click = defines end point * [x] Shift double-click = selects entire word * [x] Shift triple-click = selects entire line * [x] Shift double-click and drag = selects entire word, drag selects whole words * [x] Mouse mode: Shift single-click = defines start point * [x] Mouse mode: second Shift single-click = defines end point * [x] Mouse mode: Shift double-click = selects entire word * [x] Mouse mode: Shift triple-click = selects entire line * [x] Mouse mode: Shift double-click and drag = selects entire word, drag selects whole words * [x] With existing selection: single-click outside the selection and drag = establishes a new selection starting from the click point (cherry picked from commit e80e9b9)
You're probably going to hate me, but... this use case fails:
Right now, shift-click-drag resets the start point when the drag happens (but successfully extends when the click happens!) |
🎉 Handy links: |
🎉 Handy links: |
PR Checklist
main
#9725Validation Steps Performed