Skip to content

Commit 2ad93c6

Browse files
vthemelismartinRenou
authored andcommitted
Fix cell selection in Jupyter 4.0
Signed-off-by: Vasilis Themelis <[email protected]>
1 parent 783e342 commit 2ad93c6

File tree

1 file changed

+29
-2
lines changed

1 file changed

+29
-2
lines changed

js/mousehandler.ts

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import {
33
CellRenderer,
44
DataGrid,
55
HyperlinkRenderer,
6-
Private,
76
TextRenderer,
87
} from '@lumino/datagrid';
98
import { Platform } from '@lumino/domutils';
@@ -75,7 +74,7 @@ export class MouseHandler extends BasicMouseHandler {
7574
}
7675
if (grid) {
7776
// Create cell config object.
78-
const config = Private.createCellConfigObject(grid, hit);
77+
const config = MouseHandler.createCellConfigObject(grid, hit);
7978

8079
// Bail if no cell config object is defined for the region.
8180
if (!config) {
@@ -138,6 +137,34 @@ export class MouseHandler extends BasicMouseHandler {
138137
return this._cellClicked;
139138
}
140139

140+
/**
141+
* Creates a CellConfig object from a hit region.
142+
*/
143+
private static createCellConfigObject(
144+
grid: DataGrid,
145+
hit: DataGrid.HitTestResult
146+
): CellRenderer.CellConfig | undefined {
147+
const { region, row, column } = hit;
148+
149+
// Terminate call if region is void.
150+
if (region === 'void') {
151+
return undefined;
152+
}
153+
154+
// Augment hit region params with value and metadata.
155+
const value = grid.dataModel!.data(region, row, column);
156+
const metadata = grid.dataModel!.metadata(region, row, column);
157+
158+
// Create cell config object to retrieve cell renderer.
159+
const config = {
160+
...hit,
161+
value: value,
162+
metadata: metadata
163+
} as CellRenderer.CellConfig;
164+
165+
return config;
166+
}
167+
141168
private _grid: FeatherGrid;
142169
private _mouseIsDown = false;
143170
private _cellClicked = new Signal<this, DataGrid.HitTestResult>(this);

0 commit comments

Comments
 (0)