fix: correctly encode mouse buttons >= 8 in X10 and SGR mode
These are typically mapped in X11 to the side-buttons (backward/forwards) on the mouse. A comparison of the button numbers in SGR mode (first field): st old: 0 1 2 64 65 66 67 68 69 70 st new (it is the same as xterm now): 0 1 2 64 65 66 67 128 129 130 A script to test and reproduce it, first argument is "h" (on) or "l" (off): #!/bin/sh printf '\x1b[?1000%s\x1b[?1006%s' "$1" "$1" for n in 1 2 3 4 5 6 7 8 9 10; do printf 'button %d\n' "$n" xdotool click "$n" printf '\n\n' done
This commit is contained in:
		
							parent
							
								
									4ef0cbd8b9
								
							
						
					
					
						commit
						9e68fdbcdb
					
				
							
								
								
									
										4
									
								
								x.c
								
								
								
								
							
							
						
						
									
										4
									
								
								x.c
								
								
								
								
							| 
						 | 
					@ -387,7 +387,9 @@ mousereport(XEvent *e)
 | 
				
			||||||
			button = 3;
 | 
								button = 3;
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			button -= Button1;
 | 
								button -= Button1;
 | 
				
			||||||
			if (button >= 3)
 | 
								if (button >= 7)
 | 
				
			||||||
 | 
									button += 128 - 7;
 | 
				
			||||||
 | 
								else if (button >= 3)
 | 
				
			||||||
				button += 64 - 3;
 | 
									button += 64 - 3;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (e->xbutton.type == ButtonPress) {
 | 
							if (e->xbutton.type == ButtonPress) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue