Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ebb <matt@mke3.net>2010-01-14 04:47:25 +0300
committerMatt Ebb <matt@mke3.net>2010-01-14 04:47:25 +0300
commitf3c89524c39d780b4962627f324de392842d6f1a (patch)
tree68601ab9a046f776fa637e861f05ac5c06a38f6f /source/blender/windowmanager
parent61d4ff5890a21672e1e757484a436c0152ab802a (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.h4
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c8
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)) {