dix: only freeze the paired MD on a grab, not all other devices.
This commit is contained in:
		
							parent
							
								
									e4fe0a3cb7
								
							
						
					
					
						commit
						9eb8ea9e61
					
				
							
								
								
									
										31
									
								
								dix/events.c
								
								
								
								
							
							
						
						
									
										31
									
								
								dix/events.c
								
								
								
								
							|  | @ -1520,23 +1520,24 @@ CheckGrabForSyncs(DeviceIntPtr thisDev, Bool thisMode, Bool otherMode) | ||||||
| 	     CLIENT_BITS(grab->resource))) | 	     CLIENT_BITS(grab->resource))) | ||||||
| 	    thisDev->deviceGrab.sync.other = NullGrab; | 	    thisDev->deviceGrab.sync.other = NullGrab; | ||||||
|     } |     } | ||||||
|     /* XXX: other should only work on the paired keyboard, not on all other
 | 
 | ||||||
|        devices |     /*
 | ||||||
|  |         XXX: Direct slave grab won't freeze the paired master device. | ||||||
|  |         The correct thing to do would be to freeze all SDs attached to the | ||||||
|  |         paired master device. | ||||||
|      */ |      */ | ||||||
|     for (dev = inputInfo.devices; dev; dev = dev->next) |     if (thisDev->isMaster) | ||||||
|     { |     { | ||||||
| 	if (dev != thisDev) |         dev = GetPairedDevice(thisDev); | ||||||
| 	{ |         if (otherMode == GrabModeSync) | ||||||
| 	    if (otherMode == GrabModeSync) |             dev->deviceGrab.sync.other = grab; | ||||||
| 		dev->deviceGrab.sync.other = grab; |         else | ||||||
| 	    else |         {	/* free both if same client owns both */ | ||||||
| 	    {	/* free both if same client owns both */ |             if (dev->deviceGrab.sync.other && | ||||||
| 		if (dev->deviceGrab.sync.other && |                     (CLIENT_BITS(dev->deviceGrab.sync.other->resource) == | ||||||
| 		    (CLIENT_BITS(dev->deviceGrab.sync.other->resource) == |                      CLIENT_BITS(grab->resource))) | ||||||
| 		     CLIENT_BITS(grab->resource))) |                 dev->deviceGrab.sync.other = NullGrab; | ||||||
| 		    dev->deviceGrab.sync.other = NullGrab; |         } | ||||||
| 	    } |  | ||||||
| 	} |  | ||||||
|     } |     } | ||||||
|     ComputeFreezes(); |     ComputeFreezes(); | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue