diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2014-09-18 17:58:37 +0400 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2014-09-18 18:02:40 +0400 |
commit | 98a78963be78c1dfd02e1930e2db72deca121d1a (patch) | |
tree | 03eb32bf462b7b305dcc1998feb444f41582efb6 /source/blender | |
parent | 070ce416b9b4714d1805eb920384d447648ed71e (diff) |
Fix crashes with timers.
Incorrectly accessing the menu pointer, set it to NULL before doing the
tests.
We don't restore the menu pointer because it is invalid by the time the operator ends.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/windowmanager/intern/wm_operators.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index bc79879f1f4..523eeb380aa 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -4354,6 +4354,7 @@ static void redraw_timer_window_swap(bContext *C) { wmWindow *win = CTX_wm_window(C); ScrArea *sa; + CTX_wm_menu_set(C, NULL); for (sa = CTX_wm_screen(C)->areabase.first; sa; sa = sa->next) ED_area_tag_redraw(sa); @@ -4392,7 +4393,8 @@ static int redraw_timer_exec(bContext *C, wmOperator *op) } else if (type == 1) { wmWindow *win = CTX_wm_window(C); - + CTX_wm_menu_set(C, NULL); + ED_region_tag_redraw(ar); wm_draw_update(C); @@ -4405,6 +4407,8 @@ static int redraw_timer_exec(bContext *C, wmOperator *op) ScrArea *sa_back = CTX_wm_area(C); ARegion *ar_back = CTX_wm_region(C); + CTX_wm_menu_set(C, NULL); + for (sa = CTX_wm_screen(C)->areabase.first; sa; sa = sa->next) { ARegion *ar_iter; CTX_wm_area_set(C, sa); |