diff --git a/src/app/modeler/edit-mode/edit-mode.component.ts b/src/app/modeler/edit-mode/edit-mode.component.ts index 2430ee6..67a0497 100644 --- a/src/app/modeler/edit-mode/edit-mode.component.ts +++ b/src/app/modeler/edit-mode/edit-mode.component.ts @@ -1,4 +1,4 @@ -import {AfterViewInit, Component, ElementRef, OnDestroy, ViewChild} from '@angular/core'; +import {AfterViewInit, Component, ElementRef, HostListener, OnDestroy, ViewChild} from '@angular/core'; import {MatDialog} from '@angular/material/dialog'; import {NgxDropzoneChangeEvent} from 'ngx-dropzone'; import {ModelImportService} from '../model-import-service'; @@ -28,6 +28,12 @@ export class EditModeComponent implements AfterViewInit, OnDestroy { ) { } + @HostListener('contextmenu', ['$event']) + onRightClick(event: MouseEvent) { + event.preventDefault(); + event.stopPropagation(); + } + ngAfterViewInit() { ModelerUtils.clearSelection(); this._editModeService.contextMenuItems.subscribe(menu => { diff --git a/src/app/modeler/simulation-mode/simulation-mode.component.ts b/src/app/modeler/simulation-mode/simulation-mode.component.ts index d961e60..0fcd44b 100644 --- a/src/app/modeler/simulation-mode/simulation-mode.component.ts +++ b/src/app/modeler/simulation-mode/simulation-mode.component.ts @@ -1,4 +1,4 @@ -import {AfterViewInit, Component, ElementRef, OnDestroy, ViewChild} from '@angular/core'; +import {AfterViewInit, Component, ElementRef, HostListener, OnDestroy, ViewChild} from '@angular/core'; import {SimulationModeService} from './simulation-mode.service'; import {PetriflowCanvasService} from '@netgrif/petriflow.svg'; import {ModelService} from '../services/model/model.service'; @@ -20,6 +20,12 @@ export class SimulationModeComponent implements AfterViewInit, OnDestroy { ) { } + @HostListener('contextmenu', ['$event']) + onRightClick(event: MouseEvent) { + event.preventDefault(); + event.stopPropagation(); + } + ngAfterViewInit() { ModelerUtils.clearSelection(); this.simulationService.originalModel.next(this.modelService.model); diff --git a/src/app/modeler/simulation-mode/tool/simulation-tool.ts b/src/app/modeler/simulation-mode/tool/simulation-tool.ts index 6ead3e9..60d9bc2 100644 --- a/src/app/modeler/simulation-mode/tool/simulation-tool.ts +++ b/src/app/modeler/simulation-mode/tool/simulation-tool.ts @@ -57,7 +57,10 @@ export abstract class SimulationTool extends CanvasListenerTool { onPlaceUp(event: PointerEvent, place: CanvasPlace) { super.onPlaceUp(event, place); - this.openMarkingPlaceDialog(place.modelPlace); + // do not remove this setTimout - Windows user will not be happy (context menu problem) + setTimeout(() => { + this.openMarkingPlaceDialog(place.modelPlace); + }, 0); } onPlaceEnter(event: MouseEvent, place: CanvasPlace) { @@ -76,10 +79,14 @@ export abstract class SimulationTool extends CanvasListenerTool { if (value === undefined) { const place = this.simulationModeService.model.getPlace(reference); if (place) { - this.openMarkingPlaceDialog(place); + setTimeout(() => { + this.openMarkingPlaceDialog(place); + }, 0); } } else { - this.openDataDialog(reference, value); + setTimeout(() => { + this.openDataDialog(reference, value); + }, 0); } }