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:
Diffstat (limited to 'source/blender/windowmanager/intern/wm_event_system.c')
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c34
1 files changed, 19 insertions, 15 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index dcca2fa60c9..886456733f9 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -162,29 +162,33 @@ void wm_event_do_notifiers(bContext *C)
wmWindow *win;
for(win= wm->windows.first; win; win= win->next) {
- ScrArea *sa;
- ARegion *ar;
+
+ /* filter out notifiers */
+ if(note->category==NC_SCREEN && note->reference && note->reference!=win->screen);
+ else if(note->category==NC_SCENE && note->reference && note->reference!=win->screen->scene);
+ else {
+ ScrArea *sa;
+ ARegion *ar;
- /* XXX context in notifiers? */
- CTX_wm_window_set(C, win);
+ /* XXX context in notifiers? */
+ CTX_wm_window_set(C, win);
- /* printf("notifier win %d screen %s\n", win->winid, win->screen->id.name+2); */
- ED_screen_do_listen(win, note);
+ /* printf("notifier win %d screen %s\n", win->winid, win->screen->id.name+2); */
+ ED_screen_do_listen(win, note);
- for(ar=win->screen->regionbase.first; ar; ar= ar->next) {
- ED_region_do_listen(ar, note);
- }
-
- for(sa= win->screen->areabase.first; sa; sa= sa->next) {
- ED_area_do_listen(sa, note);
- for(ar=sa->regionbase.first; ar; ar= ar->next) {
+ for(ar=win->screen->regionbase.first; ar; ar= ar->next) {
ED_region_do_listen(ar, note);
}
+
+ for(sa= win->screen->areabase.first; sa; sa= sa->next) {
+ ED_area_do_listen(sa, note);
+ for(ar=sa->regionbase.first; ar; ar= ar->next) {
+ ED_region_do_listen(ar, note);
+ }
+ }
}
}
- CTX_wm_window_set(C, NULL);
-
MEM_freeN(note);
}