| 
					
				 | 
			
			
				@@ -831,6 +831,7 @@ class App extends React.Component<AppProps, AppState> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   private removeEventListeners() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    document.removeEventListener(EVENT.POINTER_UP, this.removePointer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     document.removeEventListener(EVENT.COPY, this.onCopy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     document.removeEventListener(EVENT.PASTE, this.pasteFromClipboard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     document.removeEventListener(EVENT.CUT, this.onCut); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -872,6 +873,7 @@ class App extends React.Component<AppProps, AppState> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   private addEventListeners() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.removeEventListeners(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    document.addEventListener(EVENT.POINTER_UP, this.removePointer); // #3553 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     document.addEventListener(EVENT.COPY, this.onCopy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (this.props.handleKeyboardGlobally) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       document.addEventListener(EVENT.KEYDOWN, this.onKeyDown, false); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1328,7 +1330,7 @@ class App extends React.Component<AppProps, AppState> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.setState(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  removePointer = (event: React.PointerEvent<HTMLElement>) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  removePointer = (event: React.PointerEvent<HTMLElement> | PointerEvent) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // remove touch handler for context menu on touch devices 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (event.pointerType === "touch" && touchTimeout) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       clearTimeout(touchTimeout); 
			 |