diff options
author | Matt Ebb <matt@mke3.net> | 2010-01-14 04:47:25 +0300 |
---|---|---|
committer | Matt Ebb <matt@mke3.net> | 2010-01-14 04:47:25 +0300 |
commit | f3c89524c39d780b4962627f324de392842d6f1a (patch) | |
tree | 68601ab9a046f776fa637e861f05ac5c06a38f6f /source/blender/windowmanager | |
parent | 61d4ff5890a21672e1e757484a436c0152ab802a (diff) |
Fix [#20663] Mouse cursor icon changes back to default in edit mode
Seemed simple but actually turned out to be quite complex.
ND_MODE notifier was being misused, changed to ND_TOOLSETTINGS
Note: Although the fix itself doesn't involve this much, debugging uncovered
that listeners can't rely on notifier->swinid to be correct, since notifiers can
now be added from RNA without a region context.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/WM_types.h | 4 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 8 |
2 files changed, 7 insertions, 5 deletions
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 442177ef7ba..ee82fccc864 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -106,7 +106,7 @@ typedef struct wmNotifier { struct wmWindowManager *wm; struct wmWindow *window; - int swinid; + int swinid; /* can't rely on this, notifiers can be added without context, swinid of 0 */ unsigned int category, data, subtype, action; void *reference; @@ -171,7 +171,7 @@ typedef struct wmNotifier { #define ND_RENDER_RESULT (10<<16) #define ND_COMPO_RESULT (11<<16) #define ND_KEYINGSET (12<<16) -#define ND_SCENEDELETE (13<<16) +#define ND_TOOLSETTINGS (13<<16) #define ND_LAYER (14<<16) #define ND_SEQUENCER_SELECT (15<<16) diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 57d67400444..f38f14e5315 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -193,13 +193,15 @@ void wm_event_do_notifiers(bContext *C) if(G.f & G_DEBUG) printf("scene set %p\n", note->reference); } - if(note->data==ND_SCENEDELETE) { + else if(note->data==ND_FRAME) + do_anim= 1; + + if(note->action == NA_REMOVED) { ED_screen_delete_scene(C, note->reference); // XXX hrms, think this over! if(G.f & G_DEBUG) printf("scene delete %p\n", note->reference); } - else if(note->data==ND_FRAME) - do_anim= 1; + } } if(ELEM4(note->category, NC_SCENE, NC_OBJECT, NC_GEOM, NC_SCENE)) { |