Cleanup: Refactor VSE selection tools keymap #121846
No reviewers
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Code Documentation
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
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
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
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
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
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
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
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#121846
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "iss/blender:readable-keymap"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Split single keymap definition into timeline and preview as well as LCS
and RCS definitions.
This improves readability of keymap code. No changes on user level.
Readability in code? In the keymap editor?
What are the expected implications for users?
Applying this patch against the current main seems to replace RMS with LMS, and also have the following Python error in the console:
@ -8719,1 +8719,3 @@
def km_sequencer_editor_tool_generic_select(params, *, fallback):
def km_sequencer_editor_tool_generic_select_timeline_rcs(params, fallback):
return [
("sequencer.select", {"type": 'LEFTMOUSE', "value": 'PRESS'},
Is it indeed intended to be
LEFTMOUSE
in RCS codepath?No, this was meant to be implemented by #109522, but forgot to remove this item.
@ -8720,0 +8719,4 @@
def km_sequencer_editor_tool_generic_select_timeline_rcs(params, fallback):
return [
("sequencer.select", {"type": 'LEFTMOUSE', "value": 'PRESS'},
{"properties": [("handles_only", True), ("wait_to_deselect_others", True)]}),
I am not sure where the
handles_only
andwait_to_deselect_others
are coming from. They were not used before this patch. I am not sure why splitting keymaps for preview and timeline need to change properties of keymap items.Same item as above, so mistakenly left there from #109522, will remove this.
I was able to reproduce this with RCS keymap, will check why this happens.
@Sergey I have fixed the issue with python error, at least it does not show up in console. In linux I got error in
keymap_init_from_data
and looking at the code it is still unpacking a tuple, so I am not sure if_template_items_tool_select()
can return empty one ifcursor_operator is None
is true. Would have to look at this later still, since I am quite tired.Just a note, I have checked the keymap, and it looks OK, so this issue should be resolved, i.e. there is no dangling empty tupple/list.
While the default keymap appears to be working fine, the
Industry Compatible
keymap does no longer work as expected: it looses the box selection behavior on tweak. I did not check if theBlender 2.7
keymap has any regressions.Which means, there are technically changes on the user level, as people who create and share keymaps needs to adjust to it. Is there a way to avoid such breaking change?
@dfelinto What is our policy now about keymap? Can we be implementing changes which we find needed to more efficiently move forward, but which break keymaps shared on the extensions platform?
Ah I did not know how these keymaps are generated or managed.
Hmm I see that we have versioning for keymap, not sure if this goes through custom keymaps. My understanding was that custom keymaps are not updated and we don't provide support for them... Will see, if this can be resolved with versioning.
@blender-bot package
Package build started. Download here when ready.
@iss Before looking into potentially tricky and fragile versioning logic, update the built-in keymaps. They should not be relying on versioning.
For the breaking aspect of this PR, we need to:
@fsiddi Maybe you can give the answer from the extensions platform perspective? There are many other ways to break custom keymaps, so I am not sure how practical it is to worry about possible regressions every time we need to touch a keymap.
@Sergey Sure, I have updated industry compatible keymap. 2.7x keymap uses default RCS keymap with few changes, so that seems to work.
I have looked into versioning, because I was completely unfamiliar with it, and I am still quite confused. From the code it seems that it only runs, when keymap is imported from .py file, but also when I tried to iterate over keyconfig_data I got 1 item that seems to be flagged as modified. That is not what I am looking for. Or I am missing something here.
But will wait for feedback, since this patch may not be a way forward.
I've talked to Francesco. The keymaps are not a short-term plan for the Extensions platform. That makes it easier for us to move forward.
I only did quick tests, and it seems fine. Reading the code also seems fine. If you've tested it good, lets move forward!