ps2: add support for mice with extra/side buttons
This enables the ps2 controller to process mouse events for buttons 4 and 5. Additionally, distinct definitions for the ps2 mouse button state are introduced. The legacy definitions from console.h are not used anymore. Signed-off-by: Fabian Lesniak <fabian@lesniak-it.de> Message-id: 20161206190007.7539-3-fabian@lesniak-it.de Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
		
							parent
							
								
									0095cc62b6
								
							
						
					
					
						commit
						8b0caab07b
					
				@ -881,9 +881,11 @@ static void ps2_mouse_event(DeviceState *dev, QemuConsole *src,
 | 
				
			|||||||
                            InputEvent *evt)
 | 
					                            InputEvent *evt)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    static const int bmap[INPUT_BUTTON__MAX] = {
 | 
					    static const int bmap[INPUT_BUTTON__MAX] = {
 | 
				
			||||||
        [INPUT_BUTTON_LEFT]   = MOUSE_EVENT_LBUTTON,
 | 
					        [INPUT_BUTTON_LEFT]   = PS2_MOUSE_BUTTON_LEFT,
 | 
				
			||||||
        [INPUT_BUTTON_MIDDLE] = MOUSE_EVENT_MBUTTON,
 | 
					        [INPUT_BUTTON_MIDDLE] = PS2_MOUSE_BUTTON_MIDDLE,
 | 
				
			||||||
        [INPUT_BUTTON_RIGHT]  = MOUSE_EVENT_RBUTTON,
 | 
					        [INPUT_BUTTON_RIGHT]  = PS2_MOUSE_BUTTON_RIGHT,
 | 
				
			||||||
 | 
					        [INPUT_BUTTON_SIDE]   = PS2_MOUSE_BUTTON_SIDE,
 | 
				
			||||||
 | 
					        [INPUT_BUTTON_EXTRA]  = PS2_MOUSE_BUTTON_EXTRA,
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    PS2MouseState *s = (PS2MouseState *)dev;
 | 
					    PS2MouseState *s = (PS2MouseState *)dev;
 | 
				
			||||||
    InputMoveEvent *move;
 | 
					    InputMoveEvent *move;
 | 
				
			||||||
 | 
				
			|||||||
@ -25,6 +25,12 @@
 | 
				
			|||||||
#ifndef HW_PS2_H
 | 
					#ifndef HW_PS2_H
 | 
				
			||||||
#define HW_PS2_H
 | 
					#define HW_PS2_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PS2_MOUSE_BUTTON_LEFT   0x01
 | 
				
			||||||
 | 
					#define PS2_MOUSE_BUTTON_MIDDLE 0x02
 | 
				
			||||||
 | 
					#define PS2_MOUSE_BUTTON_RIGHT  0x04
 | 
				
			||||||
 | 
					#define PS2_MOUSE_BUTTON_SIDE   0x08
 | 
				
			||||||
 | 
					#define PS2_MOUSE_BUTTON_EXTRA  0x10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* ps2.c */
 | 
					/* ps2.c */
 | 
				
			||||||
void *ps2_kbd_init(void (*update_irq)(void *, int), void *update_arg);
 | 
					void *ps2_kbd_init(void (*update_irq)(void *, int), void *update_arg);
 | 
				
			||||||
void *ps2_mouse_init(void (*update_irq)(void *, int), void *update_arg);
 | 
					void *ps2_mouse_init(void (*update_irq)(void *, int), void *update_arg);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user