mirror of
				https://gitlab.freedesktop.org/wayland/wayland.git
				synced 2025-11-03 09:01:42 -05:00 
			
		
		
		
	Fix X button and keycodes
Not a real fix, we're just mapping them to evdev codes for now.
This commit is contained in:
		
							parent
							
								
									ce5325d3ed
								
							
						
					
					
						commit
						f9112b2de0
					
				
					 2 changed files with 5 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -24,6 +24,7 @@
 | 
			
		|||
#include <unistd.h>
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#include <sys/time.h>
 | 
			
		||||
#include <linux/input.h>
 | 
			
		||||
 | 
			
		||||
#include <xcb/xcb.h>
 | 
			
		||||
#include <xcb/dri2.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -518,26 +519,22 @@ x11_compositor_handle_event(int fd, uint32_t mask, void *data)
 | 
			
		|||
		case XCB_KEY_PRESS:
 | 
			
		||||
			key_press = (xcb_key_press_event_t *) event;
 | 
			
		||||
			notify_key(c->base.input_device,
 | 
			
		||||
				   key_press->detail, 1);
 | 
			
		||||
 | 
			
		||||
			fprintf(stderr, "code %d, sequence %d\n",
 | 
			
		||||
				key_press->detail, key_press->sequence);
 | 
			
		||||
 | 
			
		||||
				   key_press->detail - 8, 1);
 | 
			
		||||
			break;
 | 
			
		||||
		case XCB_KEY_RELEASE:
 | 
			
		||||
			key_press = (xcb_key_press_event_t *) event;
 | 
			
		||||
			notify_key(c->base.input_device,
 | 
			
		||||
				   key_press->detail, 0);
 | 
			
		||||
				   key_press->detail - 8, 0);
 | 
			
		||||
			break;
 | 
			
		||||
		case XCB_BUTTON_PRESS:
 | 
			
		||||
			button_press = (xcb_button_press_event_t *) event;
 | 
			
		||||
			notify_button(c->base.input_device,
 | 
			
		||||
				      button_press->detail, 1);
 | 
			
		||||
				      button_press->detail + BTN_LEFT - 1, 1);
 | 
			
		||||
			break;
 | 
			
		||||
		case XCB_BUTTON_RELEASE:
 | 
			
		||||
			button_press = (xcb_button_press_event_t *) event;
 | 
			
		||||
			notify_button(c->base.input_device,
 | 
			
		||||
				      button_press->detail, 0);
 | 
			
		||||
				      button_press->detail + BTN_LEFT - 1, 0);
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
		case XCB_MOTION_NOTIFY:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -656,8 +656,6 @@ notify_button(struct wlsc_input_device *device,
 | 
			
		|||
	struct wlsc_compositor *compositor = device->ec;
 | 
			
		||||
	int32_t sx, sy;
 | 
			
		||||
 | 
			
		||||
	fprintf(stderr, "notify button: button %d, state %d\n", button, state);
 | 
			
		||||
 | 
			
		||||
	surface = pick_surface(device, &sx, &sy);
 | 
			
		||||
	if (surface) {
 | 
			
		||||
		if (state) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue