[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52546] trunk/blender/source/blender/ editors/animation/anim_markers.c: Fix #33304: missing 3D view redraw while moving camera markers.

Brecht Van Lommel brechtvanlommel at pandora.be
Sun Nov 25 17:52:43 CET 2012


Revision: 52546
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52546
Author:   blendix
Date:     2012-11-25 16:52:42 +0000 (Sun, 25 Nov 2012)
Log Message:
-----------
Fix #33304: missing 3D view redraw while moving camera markers.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/animation/anim_markers.c

Modified: trunk/blender/source/blender/editors/animation/anim_markers.c
===================================================================
--- trunk/blender/source/blender/editors/animation/anim_markers.c	2012-11-25 16:12:07 UTC (rev 52545)
+++ trunk/blender/source/blender/editors/animation/anim_markers.c	2012-11-25 16:52:42 UTC (rev 52546)
@@ -706,8 +706,13 @@
 }
 
 /* note, init has to be called succesfully */
-static void ed_marker_move_apply(wmOperator *op)
+static void ed_marker_move_apply(bContext *C, wmOperator *op)
 {
+#ifdef DURIAN_CAMERA_SWITCH
+	bScreen *sc = CTX_wm_screen(C);
+	Scene *scene = CTX_data_scene(C);
+	Object *camera = scene->camera;
+#endif
 	MarkerMove *mm = op->customdata;
 	TimeMarker *marker;
 	int a, offs;
@@ -719,17 +724,27 @@
 			a++;
 		}
 	}
+
+	WM_event_add_notifier(C, NC_SCENE | ND_MARKERS, NULL);
+	WM_event_add_notifier(C, NC_ANIMATION | ND_MARKERS, NULL);
+	
+#ifdef DURIAN_CAMERA_SWITCH
+	/* so we get view3d redraws */
+	BKE_scene_camera_switch_update(scene);
+
+	if(camera != scene->camera) {
+		BKE_screen_view3d_scene_sync(sc);
+		WM_event_add_notifier(C, NC_SCENE | NA_EDITED, scene);
+	}
+#endif
 }
 
 /* only for modal */
 static int ed_marker_move_cancel(bContext *C, wmOperator *op)
 {
 	RNA_int_set(op->ptr, "frames", 0);
-	ed_marker_move_apply(op);
+	ed_marker_move_apply(C, op);
 	ed_marker_move_exit(C, op);
-	
-	WM_event_add_notifier(C, NC_SCENE | ND_MARKERS, NULL);
-	WM_event_add_notifier(C, NC_ANIMATION | ND_MARKERS, NULL);
 
 	return OPERATOR_CANCELLED;
 }
@@ -789,7 +804,7 @@
 				
 				offs = (int)fac;
 				RNA_int_set(op->ptr, "frames", offs);
-				ed_marker_move_apply(op);
+				ed_marker_move_apply(C, op);
 				
 				/* cruft below is for header print */
 				for (a = 0, marker = mm->markers->first; marker; marker = marker->next) {
@@ -840,8 +855,6 @@
 					}
 				}
 				
-				WM_event_add_notifier(C, NC_SCENE | ND_MARKERS, NULL);
-				WM_event_add_notifier(C, NC_ANIMATION | ND_MARKERS, NULL);
 				ED_area_headerprint(CTX_wm_area(C), str);
 			}
 	}
@@ -855,14 +868,11 @@
 			outputNumInput(&mm->num, str_tx);
 			
 			RNA_int_set(op->ptr, "frames", vec);
-			ed_marker_move_apply(op);
+			ed_marker_move_apply(C, op);
 			// ed_marker_header_update(C, op, str, (int)vec[0]);
 			// strcat(str, str_tx);
 			BLI_snprintf(str, sizeof(str), "Marker offset %s", str_tx);
 			ED_area_headerprint(CTX_wm_area(C), str);
-			
-			WM_event_add_notifier(C, NC_SCENE | ND_MARKERS, NULL);
-			WM_event_add_notifier(C, NC_ANIMATION | ND_MARKERS, NULL);
 		}
 	}
 
@@ -872,7 +882,7 @@
 static int ed_marker_move_exec(bContext *C, wmOperator *op)
 {
 	if (ed_marker_move_init(C, op)) {
-		ed_marker_move_apply(op);
+		ed_marker_move_apply(C, op);
 		ed_marker_move_exit(C, op);
 		return OPERATOR_FINISHED;
 	}




More information about the Bf-blender-cvs mailing list