wmEventHandler sneaky_handler = {NULL};
if (ar->regiontype == RGN_TYPE_WINDOW) {
WorkSpace *workspace = WM_window_get_active_workspace(win);
- if (workspace->tool.keymap[0] &&
- workspace->tool.spacetype == sa->spacetype)
- {
+ const bToolKey tkey = {
+ .space_type = sa->spacetype,
+ .mode = WM_toolsystem_mode_from_spacetype(workspace, win->scene, sa, sa->spacetype),
+ };
+ bToolRef_Runtime *tref_rt = WM_toolsystem_runtime_find(workspace, &tkey);
+ if (tref_rt && tref_rt->keymap[0]) {
wmKeyMap *km = WM_keymap_find_all(
- C, workspace->tool.keymap, sa->spacetype, RGN_TYPE_WINDOW);
+ C, tref_rt->keymap, sa->spacetype, RGN_TYPE_WINDOW);
if (km != NULL) {
sneaky_handler.keymap = km;
/* Handle widgets first. */