[Bf-committers] Console Scroll Down (issue 5036048)

blend.factory at gmail.com blend.factory at gmail.com
Sat Sep 17 13:45:05 CEST 2011


Reviewers: bf-codereview_blender.org, bf-committers_blender.org,

Description:
Problem:
If one scrolls console up, and starts to type, input line isn't visible
untill one scrolls console manually dowb.

This patch solves the problem and returns console input line on keyboard
press or paste.

Please review this at http://codereview.appspot.com/5036048/

Affected files:
   source/blender/editors/interface/view2d_ops.c
   source/blender/editors/space_console/console_intern.h
   source/blender/editors/space_console/console_ops.c


Index: source/blender/editors/interface/view2d_ops.c
===================================================================
--- source/blender/editors/interface/view2d_ops.c	(revision 40290)
+++ source/blender/editors/interface/view2d_ops.c	(working copy)
@@ -423,6 +423,11 @@
  		ARegion *ar= CTX_wm_region(C);
  		RNA_int_set(op->ptr, "deltay", ar->v2d.mask.ymin - ar->v2d.mask.ymax);
  	}
+
+	if(RNA_boolean_get(op->ptr, "bottom")) {
+		ARegion *ar= CTX_wm_region(C);
+		RNA_int_set(op->ptr, "deltay", -ar->v2d.tot.ymax);
+	}
  	
  	/* apply movement, then we're done */
  	view_pan_apply(op);
@@ -445,6 +450,7 @@
  	RNA_def_int(ot->srna, "deltax", 0, INT_MIN, INT_MAX, "Delta X", "",  
INT_MIN, INT_MAX);
  	RNA_def_int(ot->srna, "deltay", 0, INT_MIN, INT_MAX, "Delta Y", "",  
INT_MIN, INT_MAX);
  	RNA_def_boolean(ot->srna, "page", 0, "Page", "Scroll down one page.");
+	RNA_def_boolean(ot->srna, "bottom", 0, "Bottom", "Scroll down to the  
bottom");
  }


@@ -474,6 +480,12 @@
  		RNA_int_set(op->ptr, "deltay", ar->v2d.mask.ymax - ar->v2d.mask.ymin);
  	}
  	
+	//Scroll region to top. Currently unused but prepared for some future use
+	if(RNA_boolean_get(op->ptr, "top")) {
+		ARegion *ar= CTX_wm_region(C);
+		RNA_int_set(op->ptr, "deltay", ar->v2d.tot.ymax);
+	}
+	
  	/* apply movement, then we're done */
  	view_pan_apply(op);
  	view_pan_exit(op);
@@ -495,6 +507,8 @@
  	RNA_def_int(ot->srna, "deltax", 0, INT_MIN, INT_MAX, "Delta X", "",  
INT_MIN, INT_MAX);
  	RNA_def_int(ot->srna, "deltay", 0, INT_MIN, INT_MAX, "Delta Y", "",  
INT_MIN, INT_MAX);
  	RNA_def_boolean(ot->srna, "page", 0, "Page", "Scroll up one page.");
+	//Scroll region to top. Currently unused but prepared for some future use
+	RNA_def_boolean(ot->srna, "top", 0, "Top", "Scroll up to the top");
  }

  /* ********************************************************* */
Index: source/blender/editors/space_console/console_intern.h
===================================================================
--- source/blender/editors/space_console/console_intern.h	(revision 40290)
+++ source/blender/editors/space_console/console_intern.h	(working copy)
@@ -54,6 +54,7 @@

  int console_report_mask(SpaceConsole *sc);

+void console_scroll_bottom(struct bContext *C);

  void CONSOLE_OT_move(struct wmOperatorType *ot);
  void CONSOLE_OT_delete(struct wmOperatorType *ot);
Index: source/blender/editors/space_console/console_ops.c
===================================================================
--- source/blender/editors/space_console/console_ops.c	(revision 40290)
+++ source/blender/editors/space_console/console_ops.c	(working copy)
@@ -285,6 +285,15 @@
  	{NEXT_WORD, "NEXT_WORD", 0, "Next Word", ""},
  	{0, NULL, 0, NULL, NULL}};

+void console_scroll_bottom(bContext *C){
+		PointerRNA ptr;
+
+		WM_operator_properties_create(&ptr, "VIEW2D_OT_scroll_down");
+		RNA_boolean_set(&ptr, "bottom", 1);
+		WM_operator_name_call(C, "VIEW2D_OT_scroll_down", WM_OP_EXEC_DEFAULT,  
&ptr);
+		WM_operator_properties_free(&ptr);
+}
+
  static int move_exec(bContext *C, wmOperator *op)
  {
  	ConsoleLine *ci= console_history_verify(C);
@@ -342,6 +351,8 @@
  		ED_area_tag_redraw(CTX_wm_area(C));
  	}
  	
+	console_scroll_bottom(C);
+	
  	return OPERATOR_FINISHED;
  }

@@ -392,6 +403,8 @@
  	console_textview_update_rect(sc, ar);
  	ED_area_tag_redraw(CTX_wm_area(C));
  	
+	console_scroll_bottom(C);
+	
  	return OPERATOR_FINISHED;
  }

@@ -479,6 +492,8 @@
  	console_textview_update_rect(sc, ar);
  	ED_area_tag_redraw(CTX_wm_area(C));
  	
+	console_scroll_bottom(C);
+
  	return OPERATOR_FINISHED;
  }

@@ -588,6 +603,8 @@
  	/* could be wrapped so update scroll rect */
  	console_textview_update_rect(sc, ar);
  	ED_area_tag_redraw(CTX_wm_area(C));
+	
+	console_scroll_bottom(C);

  	return OPERATOR_FINISHED;
  }
@@ -682,6 +699,8 @@
  	}

  	ED_area_tag_redraw(CTX_wm_area(C));
+
+	console_scroll_bottom(C);
  	
  	return OPERATOR_FINISHED;
  }
@@ -824,6 +843,8 @@

  	console_textview_update_rect(sc, ar);
  	ED_area_tag_redraw(CTX_wm_area(C));
+	
+	console_scroll_bottom(C);

  	return OPERATOR_FINISHED;
  }




More information about the Bf-committers mailing list