Skip to content

Commit 7580986

Browse files
VC-10860 adapt to VC change
1 parent e6445b2 commit 7580986

File tree

5 files changed

+45
-2
lines changed

5 files changed

+45
-2
lines changed

src/Hypergrid/events.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,15 @@ exports.mixin = {
314314
},
315315

316316
fireSyntheticDropEvent: function(dropEvent) {
317-
return dispatchGridEvent.call(this, 'fin-drop', dropEvent);
317+
var dropIndex = this.getRowIndexFromMousePoint({
318+
x: dropEvent.detail.primitiveEvent.x,
319+
y: dropEvent.detail.primitiveEvent.y
320+
});
321+
322+
return dispatchGridEvent.call(this, 'fin-drop', {
323+
dropIndex: dropIndex,
324+
headerRowCount: this.getHeaderRowCount()
325+
}, dropEvent.detail.primitiveEvent);
318326
},
319327

320328
fireSyntheticDocumentDragEvent: function(dragEvent) {

src/Hypergrid/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,6 +1265,10 @@ var Hypergrid = Base.extend('Hypergrid', {
12651265
return this.renderer.getGridCellFromMousePoint(mouse);
12661266
},
12671267

1268+
getRowIndexFromMousePoint: function (mouse: Point) {
1269+
return this.renderer.getRowIndexFromMousePoint(mouse);
1270+
},
1271+
12681272
/**
12691273
* @param {Point} gridCell - The pixel location of the mouse in physical grid coordinates.
12701274
* @returns {Rectangle} The pixel based bounds rectangle given a data cell point.

src/defaults.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -831,6 +831,13 @@ var defaults = {
831831
*/
832832
useHiDPI: true,
833833

834+
/**
835+
* @default
836+
* @type {boolean}
837+
* @memberOf module:defaults
838+
*/
839+
enableDropHint: false,
840+
834841
/**
835842
* @summary Mappings for cell navigation keys.
836843
* @desc Cell navigation is handled in the {@link CellSelection} "feature".

src/features/Drag.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ export class Drag extends FeatureBase {
2525
}
2626

2727
handleDocumentDragOver(grid: any, event: { detail: { primitiveEvent: DragEvent } }): void {
28+
if (!grid.properties.enableDropHint) {
29+
return
30+
}
31+
2832
this.renderDragHint(grid, event)
2933
this.scrollOnEdge(grid, event)
3034
if (this.next) {
@@ -33,12 +37,18 @@ export class Drag extends FeatureBase {
3337
}
3438

3539
handleDocumentDragEnd(grid: any, event: any): void {
36-
this.dragHint.style.display = 'none'
3740
if (this.next) {
3841
this.next.handleDocumentDragEnd(grid, event);
3942
}
4043
}
4144

45+
handleDrop(grid: any, event: any): void {
46+
this.dragHint.style.display = 'none'
47+
if (this.next) {
48+
this.next.handleDrop(grid, event);
49+
}
50+
}
51+
4252
scrollOnEdge(grid, event) {
4353
var cell = grid.getGridCellFromMousePoint(event.detail.mouse)
4454
const halfCellHeight = cell.cellEvent.bounds.height / 2

src/renderer/index.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,20 @@ var Renderer = Base.extend('Renderer', {
340340
return result;
341341
},
342342

343+
getRowIndexFromMousePoint: function(point) {
344+
var y = point.y
345+
var vrs = this.visibleRows
346+
var vr = vrs.find(function(vr) { return y < vr.bottom; });
347+
348+
if (vr !== undefined) {
349+
var onLowerHalf = y > (vr.top + (vr.bottom - vr.top) / 2)
350+
return onLowerHalf ? vr.index + 1 : vr.index;
351+
}
352+
353+
// last row
354+
return vrs[vrs.length - 1].index + 1;
355+
},
356+
343357
/**
344358
* Matrix of unformatted values of visible cells.
345359
* @returns {Array<Array>}

0 commit comments

Comments
 (0)