Skip to content

Commit

Permalink
Merge branch 'master' into u/juliaroldi/trigger-link-space
Browse files Browse the repository at this point in the history
  • Loading branch information
juliaroldi authored Feb 6, 2025
2 parents b4910d3 + db813ad commit ed4e4ce
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 77 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ export class ExperimentalFeatures extends React.Component<DefaultFormatProps, {}
<>
{this.renderFeature('PersistCache')}
{this.renderFeature('HandleEnterKey')}
{this.renderFeature('LegacyImageSelection')}
</>
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,9 @@ import type {
ParsedTable,
TableSelectionInfo,
TableCellCoordinate,
MouseUpEvent,
} from 'roosterjs-content-model-types';

const MouseLeftButton = 0;
const MouseMiddleButton = 1;
const MouseRightButton = 2;
const Up = 'ArrowUp';
const Down = 'ArrowDown';
Expand Down Expand Up @@ -141,7 +139,7 @@ class SelectionPlugin implements PluginWithState<SelectionPluginState> {
break;

case 'mouseUp':
this.onMouseUp(this.editor, event);
this.onMouseUp();
break;

case 'keyDown':
Expand All @@ -165,46 +163,30 @@ class SelectionPlugin implements PluginWithState<SelectionPluginState> {
let image: HTMLImageElement | null;

// Image selection
if (editor.isExperimentalFeatureEnabled('LegacyImageSelection')) {
if (
rawEvent.button === MouseRightButton &&
(image =
this.getClickingImage(rawEvent) ??
this.getContainedTargetImage(rawEvent, selection)) &&
image.isContentEditable
) {
this.selectImageWithRange(image, rawEvent);
return;
} else if (selection?.type == 'image' && selection.image !== rawEvent.target) {
this.selectBeforeOrAfterElement(editor, selection.image);
return;
}
} else {
if (
selection?.type == 'image' &&
(rawEvent.button == MouseLeftButton ||
(rawEvent.button == MouseRightButton &&
!this.getClickingImage(rawEvent) &&
!this.getContainedTargetImage(rawEvent, selection)))
) {
this.setDOMSelection(null /*domSelection*/, null /*tableSelection*/);
}
if (
selection?.type == 'image' &&
(rawEvent.button == MouseLeftButton ||
(rawEvent.button == MouseRightButton &&
!this.getClickingImage(rawEvent) &&
!this.getContainedTargetImage(rawEvent, selection)))
) {
this.setDOMSelection(null /*domSelection*/, null /*tableSelection*/);
}

if (
(image =
this.getClickingImage(rawEvent) ??
this.getContainedTargetImage(rawEvent, selection)) &&
image.isContentEditable
) {
this.setDOMSelection(
{
type: 'image',
image: image,
},
null
);
return;
}
if (
(image =
this.getClickingImage(rawEvent) ??
this.getContainedTargetImage(rawEvent, selection)) &&
image.isContentEditable
) {
this.setDOMSelection(
{
type: 'image',
image: image,
},
null
);
return;
}

// Table selection
Expand Down Expand Up @@ -245,25 +227,6 @@ class SelectionPlugin implements PluginWithState<SelectionPluginState> {
}
}

private selectImageWithRange(image: HTMLImageElement, event: Event) {
const range = image.ownerDocument.createRange();
range.selectNode(image);

const domSelection = this.editor?.getDOMSelection();
if (domSelection?.type == 'image' && image == domSelection.image) {
event.preventDefault();
} else {
this.setDOMSelection(
{
type: 'range',
isReverted: false,
range,
},
null
);
}
}

private onMouseMove = (event: Event) => {
if (this.editor && this.state.tableSelection) {
const hasTableSelection = !!this.state.tableSelection.lastCo;
Expand Down Expand Up @@ -324,21 +287,7 @@ class SelectionPlugin implements PluginWithState<SelectionPluginState> {
}
};

private onMouseUp(editor: IEditor, event: MouseUpEvent) {
let image: HTMLImageElement | null;

if (
editor.isExperimentalFeatureEnabled('LegacyImageSelection') &&
(image = this.getClickingImage(event.rawEvent)) &&
image.isContentEditable &&
event.rawEvent.button != MouseMiddleButton &&
(event.rawEvent.button ==
MouseRightButton /* it's not possible to drag using right click */ ||
event.isClicking)
) {
this.selectImageWithRange(image, event.rawEvent);
}

private onMouseUp() {
this.detachMouseEvent();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export type ExperimentalFeature =
*/
| 'PersistCache'
/**
* @deprecated
* Workaround for the Legacy Image Edit
*/
| 'LegacyImageSelection'
Expand Down

0 comments on commit ed4e4ce

Please sign in to comment.