xkb: Guard against SIGIO updates during PointerKeys.
In theory, an event coming in during GPE could reset our lastSlave, leading to rather interesting events lateron. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Simon Thum <simon.thum@gmx.de> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
This commit is contained in:
		
							parent
							
								
									108457dff8
								
							
						
					
					
						commit
						6c42c8c356
					
				| 
						 | 
					@ -64,11 +64,12 @@ XkbDDXFakeDeviceButton(DeviceIntPtr dev,Bool press,int button)
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    events = InitEventList(GetMaximumEventsNum());
 | 
					    events = InitEventList(GetMaximumEventsNum());
 | 
				
			||||||
 | 
					    OsBlockSignals();
 | 
				
			||||||
    nevents = GetPointerEvents(events, ptr,
 | 
					    nevents = GetPointerEvents(events, ptr,
 | 
				
			||||||
                               press ? ButtonPress : ButtonRelease, button,
 | 
					                               press ? ButtonPress : ButtonRelease, button,
 | 
				
			||||||
                               0 /* flags */, 0 /* first */,
 | 
					                               0 /* flags */, 0 /* first */,
 | 
				
			||||||
                               0 /* num_val */, NULL);
 | 
					                               0 /* num_val */, NULL);
 | 
				
			||||||
 | 
					    OsReleaseSignals();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (i = 0; i < nevents; i++)
 | 
					    for (i = 0; i < nevents; i++)
 | 
				
			||||||
        mieqProcessDeviceEvent(ptr, (InternalEvent*)events[i].event, NULL);
 | 
					        mieqProcessDeviceEvent(ptr, (InternalEvent*)events[i].event, NULL);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue