ArrayCtrl.patch

Abdelghani Omari, 03/26/2018 07:52 PM

Download (2.25 KB)

View differences:

ArrayCtrl.cpp (working copy)
1423 1423
		sel = true;
1424 1424
	}
1425 1425
	if(dosel && multiselect) {
1426
		ClearSelection();
1426
		ClearSelection(false);
1427 1427
		anchor = cursor;
1428
		Select(cursor);
1428
		Select(cursor, true, false);
1429 1429
		sel = true;
1430 1430
	}
1431 1431
	if(sel)
......
1489 1489
	return selectcount;
1490 1490
}
1491 1491

  
1492
void ArrayCtrl::Select(int i, bool sel)
1492
void ArrayCtrl::Select(int i, bool sel, bool raise)
1493 1493
{
1494 1494
	array.At(i).select = sel;
1495 1495
	selectiondirty = true;
1496 1496
	RefreshRow(i);
1497
	WhenSelection();
1498
	WhenSel();
1497
	if(raise) {
1498
		WhenSelection();
1499
		WhenSel();
1500
	}
1499 1501
	SyncInfo();
1500 1502
}
1501 1503

  
......
1541 1543
	SyncInfo();
1542 1544
}
1543 1545

  
1544
void ArrayCtrl::ClearSelection()
1546
void ArrayCtrl::ClearSelection(bool raise)
1545 1547
{
1546 1548
	if(IsSelection()) {
1547 1549
		for(int i = 0; i < array.GetCount(); i++)
......
1551 1553
			}
1552 1554
		selectiondirty = false;
1553 1555
		selectcount = 0;
1554
		WhenSelection();
1555
		WhenSel();
1556
		if(raise) {
1557
			WhenSelection();
1558
			WhenSel();
1559
		}
1556 1560
		SyncInfo();
1557 1561
	}
1558 1562
}
......
1650 1654
{
1651 1655
	if(cursor >= 0 && multiselect) {
1652 1656
		if(flags & K_CTRL) {
1653
			Select(cursor, !IsSelected(cursor));
1657
			Select(cursor, !IsSelected(cursor), false);
1654 1658
			anchor = cursor;
1655 1659
		}
1656 1660
		else {
1657
			ClearSelection();
1661
			ClearSelection(false);
1658 1662
			if((flags & K_SHIFT) && anchor >= 0)
1659 1663
				Select(min(anchor, cursor), abs(anchor - cursor) + 1, true);
1660 1664
			else {
1661 1665
				anchor = cursor;
1662
				Select(cursor, true);
1666
				Select(cursor, true, false);
1663 1667
			}
1664 1668
		}
1665 1669
		Action();
ArrayCtrl.h (working copy)
452 452

  
453 453
	int        GetSelectCount() const;
454 454
	bool       IsSelection() const                              { return GetSelectCount(); }
455
	void       Select(int i, bool sel = true);
455
	void       Select(int i, bool sel = true, bool raise = true);
456 456
	void       Select(int i, int count, bool sel = true);
457 457
	bool       IsSelected(int i) const                          { return i < array.GetCount() && array[i].select; }
458
	void       ClearSelection();
458
	void       ClearSelection(bool raise = true);
459 459
	bool       IsSel(int i) const;
460 460
	Vector<int> GetSelKeys() const;
461 461