diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-11-14 09:29:42 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-11-14 09:29:42 +0300 |
commit | 47da01a4db1dcedcaaae1ba22626f340cb90a530 (patch) | |
tree | c199d883fc19dd7720a0c72390fa246357e33dc2 /source/blender/windowmanager/intern/wm_toolsystem.c | |
parent | f16f2f87624a6d417c1491b0253f1ab1642010e4 (diff) |
Fix T70211: Brush keybindings failed with non-brush tool active
Diffstat (limited to 'source/blender/windowmanager/intern/wm_toolsystem.c')
-rw-r--r-- | source/blender/windowmanager/intern/wm_toolsystem.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/source/blender/windowmanager/intern/wm_toolsystem.c b/source/blender/windowmanager/intern/wm_toolsystem.c index 11286a822a7..f64acf20581 100644 --- a/source/blender/windowmanager/intern/wm_toolsystem.c +++ b/source/blender/windowmanager/intern/wm_toolsystem.c @@ -633,7 +633,7 @@ static void toolsystem_refresh_screen_from_active_tool(Main *bmain, } } -bToolRef *WM_toolsystem_ref_set_by_id( +bToolRef *WM_toolsystem_ref_set_by_id_ex( bContext *C, WorkSpace *workspace, const bToolKey *tkey, const char *name, bool cycle) { wmOperatorType *ot = WM_operatortype_find("WM_OT_tool_set_by_id", false); @@ -663,13 +663,25 @@ bToolRef *WM_toolsystem_ref_set_by_id( return (tref && STREQ(tref->idname, name)) ? tref : NULL; } +bToolRef *WM_toolsystem_ref_set_by_id(bContext *C, const char *name) +{ + ViewLayer *view_layer = CTX_data_view_layer(C); + ScrArea *sa = CTX_wm_area(C); + bToolKey tkey; + if (WM_toolsystem_key_from_context(view_layer, sa, &tkey)) { + WorkSpace *workspace = CTX_wm_workspace(C); + return WM_toolsystem_ref_set_by_id_ex(C, workspace, &tkey, name, false); + } + return NULL; +} + static void toolsystem_reinit_with_toolref(bContext *C, WorkSpace *workspace, bToolRef *tref) { bToolKey tkey = { .space_type = tref->space_type, .mode = tref->mode, }; - WM_toolsystem_ref_set_by_id(C, workspace, &tkey, tref->idname, false); + WM_toolsystem_ref_set_by_id_ex(C, workspace, &tkey, tref->idname, false); } static const char *toolsystem_default_tool(const bToolKey *tkey) |