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:
authorTon Roosendaal <ton@blender.org>2010-11-24 19:34:38 +0300
committerTon Roosendaal <ton@blender.org>2010-11-24 19:34:38 +0300
commit117d11021e76ba9db61a3fb626eb0c9995a88c89 (patch)
tree38283b06664d6e01fd73e04b6d8ccd7a7a422967 /source/blender/windowmanager
parent0daee3b8ed6dcce28a310f87f392c7eae0e607d1 (diff)
Bugfix #24847
When report error was drawn in info header, using border select or paint brushes flickered. Was caused by Triple Buffer method not checking for correct redraw case. Also made report redraws less aggressive, it was drawing the info header all over with 50 FPS for 10 seconds. Made it 20 FPS, and added code to only send notifiers for actual changes. As todo note for future: animated UI options could get better caching to cope with slower refreshes.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/intern/wm_draw.c3
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c
index 5e5d236a0f9..39467381a66 100644
--- a/source/blender/windowmanager/intern/wm_draw.c
+++ b/source/blender/windowmanager/intern/wm_draw.c
@@ -620,7 +620,8 @@ static void wm_method_draw_triple(bContext *C, wmWindow *win)
}
}
- if(screen->do_draw_gesture)
+ /* always draw, not only when screen tagged */
+ if(win->gesture.first)
wm_gesture_draw(win);
if(wm->paintcursors.first) {
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 7f061517ed3..6aec8659533 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -426,7 +426,7 @@ static void wm_operator_reports(bContext *C, wmOperator *op, int retval, int pop
WM_event_remove_timer(wm, NULL, reports->reporttimer);
/* Records time since last report was added */
- reports->reporttimer= WM_event_add_timer(wm, CTX_wm_window(C), TIMER, 0.02);
+ reports->reporttimer= WM_event_add_timer(wm, CTX_wm_window(C), TIMER, 0.05);
rti = MEM_callocN(sizeof(ReportTimerInfo), "ReportTimerInfo");
reports->reporttimer->customdata = rti;