Set the cursor to the place where a user hits tab key (#7299)

* Set the cursor to the place where a user hits tab key
This commit is contained in:
Jianyun
2018-08-01 13:31:49 -07:00
committed by Aditya Patwardhan
parent 5d03e1653a
commit 344878dcbb
2 changed files with 10 additions and 5 deletions
@@ -89,12 +89,17 @@ namespace Microsoft.PowerShell
//if the cursor is at the bottom, create screen buffer space by scrolling
int scrollRows = rows - ((_rawui.BufferSize.Height - 1) - _location.Y);
for (int i = 0; i < rows; i++)
{
Console.Out.Write('\n');
}
if (scrollRows > 0)
{
// Scroll the console screen up by 'scrollRows'
var bottomLocation = _location;
bottomLocation.Y = _rawui.BufferSize.Height;
_rawui.CursorPosition = bottomLocation;
for (int i = 0; i < scrollRows; i++)
{
Console.Out.Write('\n');
}
_location.Y -= scrollRows;
_savedCursor.Y -= scrollRows;
}
@@ -2252,7 +2252,7 @@ namespace System.Management.Automation
{
// Only generate these exceptions if a pipeline has already been declared as the 'writing' pipeline.
// Otherwise, these are probably infrastructure messages and can be ignored.
if (this.PipelineProcessor._permittedToWrite != null)
if (this.PipelineProcessor?._permittedToWrite != null)
{
throw PSTraceSource.NewInvalidOperationException(
PipelineStrings.WriteNotPermitted);