mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	Check if client understands wl_pointer::frame
Fixes a crash in SDL2 applications when using locked pointer. SDL2 expects a wl_pointer v1 interface and doesn't provide a handler for the wl_pointer::frame event. This results in a "listener function for opcode 5 of wl_pointer is NULL" abort in wayland-client. Tested on Xonotic v0.8.2 with libSDL2 v2.0.9. Xonotic needs to be ran with "SDL_VIDEODRIVER=wayland xonotic-sdl" for SDL2 to use the wayland backend.
This commit is contained in:
		
							parent
							
								
									b619ab4d34
								
							
						
					
					
						commit
						c4ce3d0a49
					
				
					 1 changed files with 4 additions and 1 deletions
				
			
		| 
						 | 
					@ -271,6 +271,9 @@ void wlr_relative_pointer_manager_v1_send_relative_motion(
 | 
				
			||||||
			(uint32_t)(time_msec >> 32), (uint32_t)time_msec,
 | 
								(uint32_t)(time_msec >> 32), (uint32_t)time_msec,
 | 
				
			||||||
			wl_fixed_from_double(dx), wl_fixed_from_double(dy),
 | 
								wl_fixed_from_double(dx), wl_fixed_from_double(dy),
 | 
				
			||||||
			wl_fixed_from_double(dx_unaccel), wl_fixed_from_double(dy_unaccel));
 | 
								wl_fixed_from_double(dx_unaccel), wl_fixed_from_double(dy_unaccel));
 | 
				
			||||||
 | 
							uint32_t version = wl_resource_get_version(pointer->resource);
 | 
				
			||||||
 | 
							if (version >= WL_POINTER_FRAME_SINCE_VERSION) {
 | 
				
			||||||
			wl_pointer_send_frame(pointer->pointer_resource);
 | 
								wl_pointer_send_frame(pointer->pointer_resource);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue