[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54961] trunk/blender/source/blender/ editors/screen/screendump.c: Bug fix #34418

Ton Roosendaal ton at blender.org
Fri Mar 1 18:17:57 CET 2013


Revision: 54961
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54961
Author:   ton
Date:     2013-03-01 17:17:57 +0000 (Fri, 01 Mar 2013)
Log Message:
-----------
Bug fix #34418

Fix for 2.66a

Screencast could be started twice in a row, but it then also added two handlers
for drawing an overlay circle around mouse cursor. After ending the screencast,
this circle then kept being drawn.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/screen/screendump.c

Modified: trunk/blender/source/blender/editors/screen/screendump.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screendump.c	2013-03-01 15:37:15 UTC (rev 54960)
+++ trunk/blender/source/blender/editors/screen/screendump.c	2013-03-01 17:17:57 UTC (rev 54961)
@@ -449,13 +449,21 @@
 
 static int screencast_exec(bContext *C, wmOperator *op)
 {
+	wmWindowManager *wm = CTX_wm_manager(C);
+	wmWindow *win = CTX_wm_window(C);
 	bScreen *screen = CTX_wm_screen(C);
-	wmJob *wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), screen, "Screencast", 0, WM_JOB_TYPE_SCREENCAST);
-	ScreenshotJob *sj = MEM_callocN(sizeof(ScreenshotJob), "screenshot job");
+	wmJob *wm_job;
+	ScreenshotJob *sj;
 
+	/* if called again, stop the running job */
+	if (WM_jobs_test(wm, screen, WM_JOB_TYPE_SCREENCAST))
+		WM_jobs_stop(wm, screen, screenshot_startjob);
+	
+	wm_job = WM_jobs_get(wm, win, screen, "Screencast", 0, WM_JOB_TYPE_SCREENCAST);
+	sj = MEM_callocN(sizeof(ScreenshotJob), "screenshot job");
+	
 	/* setup sj */
 	if (RNA_boolean_get(op->ptr, "full")) {
-		wmWindow *win = CTX_wm_window(C);
 		sj->x = 0;
 		sj->y = 0;
 		sj->dumpsx = WM_window_pixels_x(win);
@@ -470,7 +478,7 @@
 	}
 	sj->bmain = CTX_data_main(C);
 	sj->scene = CTX_data_scene(C);
-	sj->wm = CTX_wm_manager(C);
+	sj->wm = wm;
 	
 	BKE_reports_init(&sj->reports, RPT_PRINT);
 




More information about the Bf-blender-cvs mailing list