mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-26 15:57:56 +01:00
Fixed TableView when redrawing a System.DataTable that has no columns (#1639)
This commit is contained in:
@@ -621,7 +621,7 @@ namespace Terminal.Gui {
|
||||
/// <inheritdoc/>
|
||||
public override bool ProcessKey (KeyEvent keyEvent)
|
||||
{
|
||||
if (Table == null) {
|
||||
if (Table == null || Table.Columns.Count <= 0) {
|
||||
PositionCursor ();
|
||||
return false;
|
||||
}
|
||||
@@ -865,7 +865,7 @@ namespace Terminal.Gui {
|
||||
SetFocus ();
|
||||
}
|
||||
|
||||
if (Table == null) {
|
||||
if (Table == null || Table.Columns.Count <= 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -925,7 +925,7 @@ namespace Terminal.Gui {
|
||||
/// <returns></returns>
|
||||
public Point? ScreenToCell (int clientX, int clientY)
|
||||
{
|
||||
if (Table == null)
|
||||
if (Table == null || Table.Columns.Count <= 0)
|
||||
return null;
|
||||
|
||||
var viewPort = CalculateViewport (Bounds);
|
||||
@@ -956,7 +956,7 @@ namespace Terminal.Gui {
|
||||
/// <returns></returns>
|
||||
public Point? CellToScreen (int tableColumn, int tableRow)
|
||||
{
|
||||
if (Table == null)
|
||||
if (Table == null || Table.Columns.Count <= 0)
|
||||
return null;
|
||||
|
||||
var viewPort = CalculateViewport (Bounds);
|
||||
@@ -1137,7 +1137,7 @@ namespace Terminal.Gui {
|
||||
/// <returns></returns>
|
||||
private IEnumerable<ColumnToRender> CalculateViewport (Rect bounds, int padding = 1)
|
||||
{
|
||||
if (Table == null)
|
||||
if (Table == null || Table.Columns.Count <= 0)
|
||||
yield break;
|
||||
|
||||
int usedSpace = 0;
|
||||
|
||||
@@ -74,6 +74,23 @@ namespace Terminal.Gui.Views {
|
||||
Assert.Equal (1, tableView.ColumnOffset);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[AutoInitShutdown]
|
||||
public void Redraw_EmptyTable ()
|
||||
{
|
||||
var tableView = new TableView ();
|
||||
tableView.ColorScheme = new ColorScheme();
|
||||
tableView.Bounds = new Rect (0, 0, 25, 10);
|
||||
|
||||
// Set a table with 1 column
|
||||
tableView.Table = BuildTable (1, 50);
|
||||
tableView.Redraw(tableView.Bounds);
|
||||
|
||||
tableView.Table.Columns.Remove(tableView.Table.Columns[0]);
|
||||
tableView.Redraw(tableView.Bounds);
|
||||
}
|
||||
|
||||
|
||||
[Fact]
|
||||
public void SelectedCellChanged_NotFiredForSameValue ()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user