| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -118,6 +118,7 @@ enum term_mode { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_8BIT	 = 8192, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_BLINK	 = 16384, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_FBLINK	 = 32768, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_FOCUS	 = 65536, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					}; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					enum escape_state { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1782,6 +1783,13 @@ tsetmode(bool priv, bool set, int *args, int narg) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									MODBIT(term.mode, set, MODE_MOUSEMOTION); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									MODBIT(term.mode, 0, MODE_MOUSEBTN); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								case 1003: /* 1003: enable all mouse reports */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									MODBIT(term.mode, set, MODE_MOUSEMOTION); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									MODBIT(term.mode, set, MODE_MOUSEBTN); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								case 1004: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									MODBIT(term.mode, set, MODE_FOCUS); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								case 1006: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									MODBIT(term.mode, set, MODE_MOUSESGR); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									break; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -1807,6 +1815,9 @@ tsetmode(bool priv, bool set, int *args, int narg) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								case 1048: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									tcursor((set) ? CURSOR_SAVE : CURSOR_LOAD); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								case 9: /* X10 compatibility mode */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								case 1001: /* mouse highlight mode; can hang the | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									      terminal when implemented. */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								default: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									fprintf(stderr, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										"erresc: unknown private set/reset mode %d\n", | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -3309,9 +3320,13 @@ focus(XEvent *ev) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XSetICFocus(xw.xic); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							xw.state |= WIN_FOCUSED; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							xseturgency(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(IS_SET(MODE_FOCUS)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								ttywrite("\033[I", 3); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XUnsetICFocus(xw.xic); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							xw.state &= ~WIN_FOCUSED; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(IS_SET(MODE_FOCUS)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								ttywrite("\033[O", 3); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |