mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
Open context menu on right click
This commit is contained in:
@@ -83,20 +83,20 @@ const TreeViewRow = <Item: ItemBaseAttributes>(props: Props<Item>) => {
|
||||
const left = node.depth * 20;
|
||||
const [isStayingOver, setIsStayingOver] = React.useState<boolean>(false);
|
||||
const openWhenOverTimeoutId = React.useRef<?TimeoutID>(null);
|
||||
const longTouchForContextMenuProps = useLongTouch(
|
||||
React.useCallback(
|
||||
({ clientX, clientY }) => {
|
||||
onContextMenu({
|
||||
index: index,
|
||||
item: node.item,
|
||||
x: clientX,
|
||||
y: clientY,
|
||||
});
|
||||
},
|
||||
[onContextMenu, index, node.item]
|
||||
)
|
||||
const openContextMenu = React.useCallback(
|
||||
({ clientX, clientY }) => {
|
||||
onContextMenu({
|
||||
index: index,
|
||||
item: node.item,
|
||||
x: clientX,
|
||||
y: clientY,
|
||||
});
|
||||
},
|
||||
[onContextMenu, index, node.item]
|
||||
);
|
||||
|
||||
const longTouchForContextMenuProps = useLongTouch(openContextMenu);
|
||||
|
||||
const onClick = React.useCallback(
|
||||
event => {
|
||||
if (!node) return;
|
||||
@@ -105,6 +105,14 @@ const TreeViewRow = <Item: ItemBaseAttributes>(props: Props<Item>) => {
|
||||
[onSelect, node]
|
||||
);
|
||||
|
||||
const selectAndOpenContextMenu = React.useCallback(
|
||||
(event: MouseEvent) => {
|
||||
onClick(event);
|
||||
openContextMenu(event);
|
||||
},
|
||||
[onClick, openContextMenu]
|
||||
);
|
||||
|
||||
React.useEffect(
|
||||
() => {
|
||||
if (
|
||||
@@ -173,6 +181,7 @@ const TreeViewRow = <Item: ItemBaseAttributes>(props: Props<Item>) => {
|
||||
onDoubleClick={
|
||||
onEditItem ? () => onEditItem(node.item) : undefined
|
||||
}
|
||||
onContextMenu={selectAndOpenContextMenu}
|
||||
{...longTouchForContextMenuProps}
|
||||
>
|
||||
{connectDragPreview(
|
||||
|
Reference in New Issue
Block a user