From f0f451fc16880315c8c094aaabd0fbf8a06ffede Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 27 Dec 2008 16:09:56 +0000 Subject: 2.5 Notifier system upgrade, based on Brecht's doc. Implementation notes: http://wiki.blender.org/index.php/BlenderDev/Blender2.5/DataNotifiers#Implementation In short: let's try to strictly communicate in a notifier what happened. The listeners then can act themselves. It also means that a frame-changed notifier doesn't send out redraws, the editors themselves can decide. --- source/blender/editors/space_time/space_time.c | 5 +++-- source/blender/editors/space_time/time_header.c | 11 ++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'source/blender/editors/space_time') diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index 81c5334ef31..11ab7b19a6b 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -164,9 +164,10 @@ static void time_main_area_draw(const bContext *C, ARegion *ar) static void time_main_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->type) { + switch(wmn->category) { - case WM_NOTE_MARKERS_CHANGED: + case NC_SCENE: + /* any scene change for now */ ED_region_tag_redraw(ar); break; } diff --git a/source/blender/editors/space_time/time_header.c b/source/blender/editors/space_time/time_header.c index b760f1f969b..94c3e03ff8c 100644 --- a/source/blender/editors/space_time/time_header.c +++ b/source/blender/editors/space_time/time_header.c @@ -275,7 +275,7 @@ static void do_time_framemenu(bContext *C, void *arg, int event) } else scene->r.sfra = scene->r.cfra; - WM_event_add_notifier(C, WM_NOTE_WINDOW_REDRAW, 0, NULL); + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, scene); break; case 2: /* Set as End */ if (scene->r.psfra) { @@ -285,7 +285,7 @@ static void do_time_framemenu(bContext *C, void *arg, int event) } else scene->r.efra = scene->r.cfra; - WM_event_add_notifier(C, WM_NOTE_WINDOW_REDRAW, 0, NULL); + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, scene); break; case 3: /* Rename Marker */ //rename_marker(); @@ -362,8 +362,10 @@ void do_time_buttons(bContext *C, void *arg, int event) switch(event) { case B_REDRAWALL: + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, scene); + break; case B_NEWFRAME: - WM_event_add_notifier(C, WM_NOTE_WINDOW_REDRAW, 0, NULL); + WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); break; case B_TL_REW: scene->r.cfra= PSFRA; @@ -374,7 +376,6 @@ void do_time_buttons(bContext *C, void *arg, int event) break; case B_TL_STOP: ED_screen_animation_timer(C, 0); - WM_event_add_notifier(C, WM_NOTE_WINDOW_REDRAW, 0, NULL); break; case B_TL_FF: /* end frame */ @@ -402,7 +403,7 @@ void do_time_buttons(bContext *C, void *arg, int event) scene->r.pefra= 0; } //BIF_undo_push("Set anim-preview range"); - WM_event_add_notifier(C, WM_NOTE_WINDOW_REDRAW, 0, NULL); + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, scene); break; case B_TL_INSERTKEY: -- cgit v1.2.3