|  | @@ -832,6 +832,8 @@ const ELEMENT_TRANSLATE_AMOUNT = 1;
 | 
	
		
			
				|  |  |  let lastCanvasWidth = -1;
 | 
	
		
			
				|  |  |  let lastCanvasHeight = -1;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +let lastMouseUp: ((e: any) => void) | null = null;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  class App extends React.Component<{}, AppState> {
 | 
	
		
			
				|  |  |    public componentDidMount() {
 | 
	
		
			
				|  |  |      document.addEventListener("keydown", this.onKeyDown, false);
 | 
	
	
		
			
				|  | @@ -1157,6 +1159,12 @@ class App extends React.Component<{}, AppState> {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |            }}
 | 
	
		
			
				|  |  |            onMouseDown={e => {
 | 
	
		
			
				|  |  | +            if (lastMouseUp !== null) {
 | 
	
		
			
				|  |  | +              // Unfortunately, sometimes we don't get a mouseup after a mousedown,
 | 
	
		
			
				|  |  | +              // this can happen when a contextual menu or alert is triggered. In order to avoid
 | 
	
		
			
				|  |  | +              // being in a weird state, we clean up on the next mousedown
 | 
	
		
			
				|  |  | +              lastMouseUp(e);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              // only handle left mouse button
 | 
	
		
			
				|  |  |              if (e.button !== 0) return;
 | 
	
		
			
				|  |  |              // fixes mousemove causing selection of UI texts #32
 | 
	
	
		
			
				|  | @@ -1398,6 +1406,7 @@ class App extends React.Component<{}, AppState> {
 | 
	
		
			
				|  |  |              const onMouseUp = (e: MouseEvent) => {
 | 
	
		
			
				|  |  |                const { draggingElement, elementType } = this.state;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +              lastMouseUp = null;
 | 
	
		
			
				|  |  |                window.removeEventListener("mousemove", onMouseMove);
 | 
	
		
			
				|  |  |                window.removeEventListener("mouseup", onMouseUp);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1426,6 +1435,8 @@ class App extends React.Component<{}, AppState> {
 | 
	
		
			
				|  |  |                this.forceUpdate();
 | 
	
		
			
				|  |  |              };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            lastMouseUp = onMouseUp;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              window.addEventListener("mousemove", onMouseMove);
 | 
	
		
			
				|  |  |              window.addEventListener("mouseup", onMouseUp);
 | 
	
		
			
				|  |  |  
 |