Implementing mouse focus and all events.
This commit is contained in:
		
							parent
							
								
									8315dc4179
								
							
						
					
					
						commit
						405fd89ac1
					
				
							
								
								
									
										15
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								st.c
									
									
									
									
									
								
							| @ -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); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Christoph Lohmann
						Christoph Lohmann