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:
-rw-r--r--source/blender/include/BIF_screen.h2
-rw-r--r--source/blender/src/editscreen.c24
2 files changed, 26 insertions, 0 deletions
diff --git a/source/blender/include/BIF_screen.h b/source/blender/include/BIF_screen.h
index e92c2933162..416df442e7c 100644
--- a/source/blender/include/BIF_screen.h
+++ b/source/blender/include/BIF_screen.h
@@ -61,6 +61,8 @@ void scrarea_queue_redraw(struct ScrArea *area);
void scrarea_queue_winredraw(struct ScrArea *area);
void scrarea_queue_headredraw(struct ScrArea *area);
+int blender_test_break(void);
+
void duplicate_screen(void);
void init_screen_cursors(void);
void set_timecursor(int nr);
diff --git a/source/blender/src/editscreen.c b/source/blender/src/editscreen.c
index c8b00d2f5d7..1bfc239b0eb 100644
--- a/source/blender/src/editscreen.c
+++ b/source/blender/src/editscreen.c
@@ -826,6 +826,30 @@ unsigned short extern_qread(short *val)
return extern_qread_ext(val, &ascii);
}
+int blender_test_break(void)
+{
+ if (!G.background) {
+ static double ltime= 0;
+ double curtime= PIL_check_seconds_timer();
+
+ /* only check for breaks every 10 milliseconds
+ * if we get called more often.
+ */
+ if ((curtime-ltime)>.001) {
+ ltime= curtime;
+
+ while(qtest()) {
+ short val;
+ if (extern_qread(&val) == ESCKEY) {
+ G.afbreek= 1;
+ }
+ }
+ }
+ }
+
+ return (G.afbreek==1);
+}
+
void reset_autosave(void) {
window_set_timer(mainwin, U.savetime*60*1000, AUTOSAVE_FILE);
}