[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60156] trunk/blender/source/blender: fix [#36444] view3d.viewnumpad operator should not animate

Campbell Barton ideasman42 at gmail.com
Mon Sep 16 06:04:45 CEST 2013


Revision: 60156
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60156
Author:   campbellbarton
Date:     2013-09-16 04:04:44 +0000 (Mon, 16 Sep 2013)
Log Message:
-----------
fix [#36444] view3d.viewnumpad operator should not animate

when running viewport operations with exec() rather then invoke(), perform the action immediately rather then using smoothview.
makes viewport operations usable from python scripts.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/include/UI_view2d.h
    trunk/blender/source/blender/editors/interface/view2d_ops.c
    trunk/blender/source/blender/editors/space_graph/graph_edit.c
    trunk/blender/source/blender/editors/space_logic/logic_ops.c
    trunk/blender/source/blender/editors/space_node/node_intern.h
    trunk/blender/source/blender/editors/space_node/node_select.c
    trunk/blender/source/blender/editors/space_node/node_view.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
    trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
    trunk/blender/source/blender/editors/space_view3d/view3d_view.c
    trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h
    trunk/blender/source/blender/windowmanager/WM_api.h
    trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c

Modified: trunk/blender/source/blender/editors/include/UI_view2d.h
===================================================================
--- trunk/blender/source/blender/editors/include/UI_view2d.h	2013-09-16 02:24:41 UTC (rev 60155)
+++ trunk/blender/source/blender/editors/include/UI_view2d.h	2013-09-16 04:04:44 UTC (rev 60156)
@@ -216,7 +216,7 @@
 void UI_view2d_keymap(struct wmKeyConfig *keyconf);
 
 void UI_view2d_smooth_view(struct bContext *C, struct ARegion *ar,
-                           const struct rctf *cur);
+                           const struct rctf *cur, const int smooth_viewtx);
 
 #endif /* __UI_VIEW2D_H__ */
 

Modified: trunk/blender/source/blender/editors/interface/view2d_ops.c
===================================================================
--- trunk/blender/source/blender/editors/interface/view2d_ops.c	2013-09-16 02:24:41 UTC (rev 60155)
+++ trunk/blender/source/blender/editors/interface/view2d_ops.c	2013-09-16 04:04:44 UTC (rev 60156)
@@ -1144,6 +1144,7 @@
 	rctf rect;
 	rctf cur_new = v2d->cur;
 	int gesture_mode;
+	const int smooth_viewtx = WM_operator_smooth_viewtx_get(op);
 	
 	/* convert coordinates of rect to 'tot' rect coordinates */
 	UI_view2d_region_to_view(v2d, RNA_int_get(op->ptr, "xmin"), RNA_int_get(op->ptr, "ymin"), &rect.xmin, &rect.ymin);
@@ -1195,7 +1196,7 @@
 		}
 	}
 	
-	UI_view2d_smooth_view(C, ar, &cur_new);
+	UI_view2d_smooth_view(C, ar, &cur_new, smooth_viewtx);
 	
 	return OPERATOR_FINISHED;
 } 
@@ -1269,7 +1270,7 @@
 /* will start timer if appropriate */
 /* the arguments are the desired situation */
 void UI_view2d_smooth_view(bContext *C, ARegion *ar,
-                           const rctf *cur)
+                           const rctf *cur, const int smooth_viewtx)
 {
 	wmWindowManager *wm = CTX_wm_manager(C);
 	wmWindow *win = CTX_wm_window(C);
@@ -1289,7 +1290,7 @@
 		fac = smooth_view_rect_to_fac(&v2d->cur, cur);
 	}
 
-	if (U.smooth_viewtx && fac > FLT_EPSILON) {
+	if (smooth_viewtx && fac > FLT_EPSILON) {
 		int changed = FALSE;
 
 		if (BLI_rctf_compare(&sms.new_cur, &v2d->cur, FLT_EPSILON) == FALSE)
@@ -1300,7 +1301,7 @@
 		if (changed) {
 			sms.orig_cur = v2d->cur;
 
-			sms.time_allowed = (double)U.smooth_viewtx / 1000.0;
+			sms.time_allowed = (double)smooth_viewtx / 1000.0;
 
 			/* scale the time allowed the change in view */
 			sms.time_allowed *= (double)fac;

Modified: trunk/blender/source/blender/editors/space_graph/graph_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_graph/graph_edit.c	2013-09-16 02:24:41 UTC (rev 60155)
+++ trunk/blender/source/blender/editors/space_graph/graph_edit.c	2013-09-16 04:04:44 UTC (rev 60156)
@@ -214,7 +214,8 @@
 
 /* ****************** View-All Operator ****************** */
 
-static int graphkeys_viewall(bContext *C, const short do_sel_only, const short include_handles)
+static int graphkeys_viewall(bContext *C, const short do_sel_only, const short include_handles,
+                             const int smooth_viewtx)
 {
 	bAnimContext ac;
 	rctf cur_new;
@@ -231,7 +232,7 @@
 
 	BLI_rctf_scale(&cur_new, 1.1f);
 
-	UI_view2d_smooth_view(C, ac.ar, &cur_new);
+	UI_view2d_smooth_view(C, ac.ar, &cur_new, smooth_viewtx);
 
 	return OPERATOR_FINISHED;
 }
@@ -240,18 +241,20 @@
 
 static int graphkeys_viewall_exec(bContext *C, wmOperator *op)
 {
-	short include_handles = RNA_boolean_get(op->ptr, "include_handles");
+	const short include_handles = RNA_boolean_get(op->ptr, "include_handles");
+	const int smooth_viewtx = WM_operator_smooth_viewtx_get(op);
 	
 	/* whole range */
-	return graphkeys_viewall(C, FALSE, include_handles);
+	return graphkeys_viewall(C, false, include_handles, smooth_viewtx);
 }
  
 static int graphkeys_view_selected_exec(bContext *C, wmOperator *op)
 {
-	short include_handles = RNA_boolean_get(op->ptr, "include_handles");
+	const short include_handles = RNA_boolean_get(op->ptr, "include_handles");
+	const int smooth_viewtx = WM_operator_smooth_viewtx_get(op);
 	
 	/* only selected */
-	return graphkeys_viewall(C, TRUE, include_handles);
+	return graphkeys_viewall(C, true, include_handles, smooth_viewtx);
 }
 
 void GRAPH_OT_view_all(wmOperatorType *ot)

Modified: trunk/blender/source/blender/editors/space_logic/logic_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_logic/logic_ops.c	2013-09-16 02:24:41 UTC (rev 60155)
+++ trunk/blender/source/blender/editors/space_logic/logic_ops.c	2013-09-16 04:04:44 UTC (rev 60156)
@@ -739,16 +739,17 @@
 
 /* ************************ view ********************* */
 
-static int logic_view_all_exec(bContext *C, wmOperator *UNUSED(op))
+static int logic_view_all_exec(bContext *C, wmOperator *op)
 {
 	ARegion *ar = CTX_wm_region(C);
 	rctf cur_new = ar->v2d.tot;
 	float aspect = BLI_rctf_size_y(&ar->v2d.cur) / BLI_rctf_size_x(&ar->v2d.cur);
+	const int smooth_viewtx = WM_operator_smooth_viewtx_get(op);
 	
 	/* force the view2d code to zoom to width, not height */
 	cur_new.ymin = cur_new.ymax - BLI_rctf_size_x(&cur_new) * aspect;
 	
-	UI_view2d_smooth_view(C, ar, &cur_new);
+	UI_view2d_smooth_view(C, ar, &cur_new, smooth_viewtx);
 
 	return OPERATOR_FINISHED;
 }

Modified: trunk/blender/source/blender/editors/space_node/node_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_intern.h	2013-09-16 02:24:41 UTC (rev 60155)
+++ trunk/blender/source/blender/editors/space_node/node_intern.h	2013-09-16 04:04:44 UTC (rev 60156)
@@ -122,7 +122,8 @@
 void NODE_OT_find_node(struct wmOperatorType *ot);
 
 /* node_view.c */
-int space_node_view_flag(struct bContext *C, SpaceNode *snode, ARegion *ar, const int node_flag);
+int space_node_view_flag(struct bContext *C, SpaceNode *snode, ARegion *ar,
+                         const int node_flag, const int smooth_viewtx);
 
 void NODE_OT_view_all(struct wmOperatorType *ot);
 void NODE_OT_view_selected(struct wmOperatorType *ot);

Modified: trunk/blender/source/blender/editors/space_node/node_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_select.c	2013-09-16 02:24:41 UTC (rev 60155)
+++ trunk/blender/source/blender/editors/space_node/node_select.c	2013-09-16 04:04:44 UTC (rev 60156)
@@ -831,7 +831,8 @@
 		if (active->totr.xmax < ar->v2d.cur.xmin || active->totr.xmin > ar->v2d.cur.xmax ||
 		    active->totr.ymax < ar->v2d.cur.ymin || active->totr.ymin > ar->v2d.cur.ymax)
 		{
-			space_node_view_flag(C, snode, CTX_wm_region(C), NODE_SELECT);
+			const int smooth_viewtx = WM_operator_smooth_viewtx_get(op);
+			space_node_view_flag(C, snode, ar, NODE_SELECT, smooth_viewtx);
 		}
 	}
 	
@@ -895,7 +896,7 @@
 		if (active->totr.xmax < ar->v2d.cur.xmin || active->totr.xmin > ar->v2d.cur.xmax ||
 		    active->totr.ymax < ar->v2d.cur.ymin || active->totr.ymin > ar->v2d.cur.ymax)
 		{
-			space_node_view_flag(C, snode, ar, NODE_SELECT);
+			space_node_view_flag(C, snode, ar, NODE_SELECT, U.smooth_viewtx);
 		}
 
 	}

Modified: trunk/blender/source/blender/editors/space_node/node_view.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_view.c	2013-09-16 02:24:41 UTC (rev 60155)
+++ trunk/blender/source/blender/editors/space_node/node_view.c	2013-09-16 04:04:44 UTC (rev 60156)
@@ -66,7 +66,8 @@
 
 /* **************** View All Operator ************** */
 
-int space_node_view_flag(bContext *C, SpaceNode *snode, ARegion *ar, const int node_flag)
+int space_node_view_flag(bContext *C, SpaceNode *snode, ARegion *ar,
+                         const int node_flag, const int smooth_viewtx)
 {
 	bNode *node;
 	rctf cur_new;
@@ -125,22 +126,23 @@
 			BLI_rctf_scale(&cur_new, 1.1f);
 		}
 
-		UI_view2d_smooth_view(C, ar, &cur_new);
+		UI_view2d_smooth_view(C, ar, &cur_new, smooth_viewtx);
 	}
 
 	return (tot != 0);
 }
 
-static int node_view_all_exec(bContext *C, wmOperator *UNUSED(op))
+static int node_view_all_exec(bContext *C, wmOperator *op)
 {
 	ARegion *ar = CTX_wm_region(C);
 	SpaceNode *snode = CTX_wm_space_node(C);
+	const int smooth_viewtx = WM_operator_smooth_viewtx_get(op);
 
 	/* is this really needed? */
 	snode->xof = 0;
 	snode->yof = 0;
 
-	if (space_node_view_flag(C, snode, ar, 0)) {
+	if (space_node_view_flag(C, snode, ar, 0, smooth_viewtx)) {
 		return OPERATOR_FINISHED;
 	}
 	else {
@@ -163,12 +165,13 @@
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 }
 
-static int node_view_selected_exec(bContext *C, wmOperator *UNUSED(op))
+static int node_view_selected_exec(bContext *C, wmOperator *op)
 {
 	ARegion *ar = CTX_wm_region(C);
 	SpaceNode *snode = CTX_wm_space_node(C);
+	const int smooth_viewtx = WM_operator_smooth_viewtx_get(op);
 
-	if (space_node_view_flag(C, snode, ar, NODE_SELECT)) {
+	if (space_node_view_flag(C, snode, ar, NODE_SELECT, smooth_viewtx)) {
 		return OPERATOR_FINISHED;
 	}
 	else {

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2013-09-16 02:24:41 UTC (rev 60155)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2013-09-16 04:04:44 UTC (rev 60156)
@@ -2155,12 +2155,13 @@
 }
 
 /* view_all operator */
-static int sequencer_view_all_exec(bContext *C, wmOperator *UNUSED(op))
+static int sequencer_view_all_exec(bContext *C, wmOperator *op)
 {
 	ARegion *ar = CTX_wm_region(C);
 	View2D *v2d = UI_view2d_fromcontext(C);
+	const int smooth_viewtx = WM_operator_smooth_viewtx_get(op);
 
-	UI_view2d_smooth_view(C, ar, &v2d->tot);
+	UI_view2d_smooth_view(C, ar, &v2d->tot, smooth_viewtx);
 	return OPERATOR_FINISHED;
 }
 
@@ -2322,7 +2323,7 @@
 
 
 /* view_selected operator */
-static int sequencer_view_selected_exec(bContext *C, wmOperator *UNUSED(op))
+static int sequencer_view_selected_exec(bContext *C, wmOperator *op)
 {
 	Scene *scene = CTX_data_scene(C);
 	View2D *v2d = UI_view2d_fromcontext(C);
@@ -2355,6 +2356,7 @@
 	}
 
 	if (ymax != 0) {
+		const int smooth_viewtx = WM_operator_smooth_viewtx_get(op);
 		
 		xmax += xmargin;
 		xmin -= xmargin;
@@ -2377,7 +2379,7 @@
 			cur_new.ymax = ymid + (orig_height / 2);
 		}
 
-		UI_view2d_smooth_view(C, ar, &cur_new);
+		UI_view2d_smooth_view(C, ar, &cur_new, smooth_viewtx);
 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list