diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-06-28 10:35:40 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-06-28 10:38:42 +0300 |
commit | 9ec8887599b1c14dac47cca1a073fa50b333d5ee (patch) | |
tree | ab26fd2c103e3585b1622bdf80bd8ef86fd0cd48 | |
parent | bd227d13787ccecabb5005d7211ce6ce04f60104 (diff) |
Fix invalid area tool being set from message passing
This wasn't working with multiple windows,
WM_toolsystem_do_msg_notify_tag_refresh could use a workspace
from a different window to the screen that owned the area.
Instead of fixing, remove these since they aren't needed anymore
since changing modes now refreshes the tool system.
-rw-r--r-- | source/blender/editors/space_view3d/space_view3d.c | 12 | ||||
-rw-r--r-- | source/blender/windowmanager/WM_toolsystem.h | 4 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_toolsystem.c | 17 |
3 files changed, 1 insertions, 32 deletions
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index c1891865d6d..a90e59745be 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -980,7 +980,7 @@ static void view3d_main_region_message_subscribe(const struct bContext *C, struct WorkSpace *UNUSED(workspace), struct Scene *UNUSED(scene), struct bScreen *UNUSED(screen), - struct ScrArea *sa, + struct ScrArea *UNUSED(sa), struct ARegion *ar, struct wmMsgBus *mbus) { @@ -1054,16 +1054,6 @@ static void view3d_main_region_message_subscribe(const struct bContext *C, break; } } - - { - wmMsgSubscribeValue msg_sub_value_region_tag_refresh = { - .owner = ar, - .user_data = sa, - .notify = WM_toolsystem_do_msg_notify_tag_refresh, - }; - WM_msg_subscribe_rna_anon_prop(mbus, Object, mode, &msg_sub_value_region_tag_refresh); - WM_msg_subscribe_rna_anon_prop(mbus, LayerObjects, active, &msg_sub_value_region_tag_refresh); - } } /* concept is to retrieve cursor type context-less */ diff --git a/source/blender/windowmanager/WM_toolsystem.h b/source/blender/windowmanager/WM_toolsystem.h index 5afa0a88560..4d4cb95ec1c 100644 --- a/source/blender/windowmanager/WM_toolsystem.h +++ b/source/blender/windowmanager/WM_toolsystem.h @@ -99,10 +99,6 @@ void WM_toolsystem_update_from_context(struct bContext *C, bool WM_toolsystem_active_tool_is_brush(const struct bContext *C); -void WM_toolsystem_do_msg_notify_tag_refresh(struct bContext *C, - struct wmMsgSubscribeKey *msg_key, - struct wmMsgSubscribeValue *msg_val); - struct IDProperty *WM_toolsystem_ref_properties_ensure_idprops(struct bToolRef *tref); void WM_toolsystem_ref_properties_ensure_ex(struct bToolRef *tref, const char *idname, diff --git a/source/blender/windowmanager/intern/wm_toolsystem.c b/source/blender/windowmanager/intern/wm_toolsystem.c index ae9c6e267e2..1ea39dcd6e0 100644 --- a/source/blender/windowmanager/intern/wm_toolsystem.c +++ b/source/blender/windowmanager/intern/wm_toolsystem.c @@ -764,23 +764,6 @@ bool WM_toolsystem_active_tool_is_brush(const bContext *C) return tref_rt && (tref_rt->data_block[0] != '\0'); } -/* Follow wmMsgNotifyFn spec */ -void WM_toolsystem_do_msg_notify_tag_refresh(bContext *C, - wmMsgSubscribeKey *UNUSED(msg_key), - wmMsgSubscribeValue *msg_val) -{ - WorkSpace *workspace = CTX_wm_workspace(C); - ViewLayer *view_layer = CTX_data_view_layer(C); - ScrArea *sa = msg_val->user_data; - int space_type = sa->spacetype; - const bToolKey tkey = { - .space_type = space_type, - .mode = WM_toolsystem_mode_from_spacetype(view_layer, sa, sa->spacetype), - }; - WM_toolsystem_refresh(C, workspace, &tkey); - WM_toolsystem_refresh_screen_area(workspace, view_layer, sa); -} - IDProperty *WM_toolsystem_ref_properties_ensure_idprops(bToolRef *tref) { if (tref->properties == NULL) { |