mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	Starting with Linux Kernel v5.0 two new axes are available for mice that support high-resolution wheel scrolling: REL_WHEEL_HI_RES and REL_HWHEEL_HI_RES. Both axes send data in fractions of 120 where each multiple of 120 amounts to one logical scroll event. Fractions of 120 indicate a wheel movement less than one detent. Three new events are now available on libinput: LIBINPUT_EVENT_POINTER_SCROLL_WHEEL, LIBINPUT_EVENT_POINTER_SCROLL_FINGER, and LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS. These events replace the LIBINPUT_EVENT_POINTER_AXIS event, so new clients should simply ignore that event. Also, two new APIs are available to access the high-resolution data: libinput_event_pointer_get_scroll_value() and libinput_event_pointer_get_scroll_value_v120(). Add a project argument (LIBINPUT_HAS_SCROLL_VALUE120) to allow building against old versions of libinput or, where high-resolution scroll is available, support it.
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			849 B
		
	
	
	
		
			Meson
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			849 B
		
	
	
	
		
			Meson
		
	
	
	
	
	
msg = ['Required for libinput backend support.']
 | 
						|
if 'libinput' in backends
 | 
						|
	msg += 'Install "libinput" or disable the libinput backend.'
 | 
						|
endif
 | 
						|
 | 
						|
libinput = dependency(
 | 
						|
	'libinput',
 | 
						|
	version: '>=1.14.0',
 | 
						|
	required: 'libinput' in backends,
 | 
						|
	not_found_message: '\n'.join(msg),
 | 
						|
)
 | 
						|
 | 
						|
if not libinput.found()
 | 
						|
	subdir_done()
 | 
						|
endif
 | 
						|
 | 
						|
wlr_files += files(
 | 
						|
	'backend.c',
 | 
						|
	'events.c',
 | 
						|
	'keyboard.c',
 | 
						|
	'pointer.c',
 | 
						|
	'switch.c',
 | 
						|
	'tablet_pad.c',
 | 
						|
	'tablet_tool.c',
 | 
						|
	'touch.c',
 | 
						|
)
 | 
						|
 | 
						|
features += { 'libinput-backend': true }
 | 
						|
wlr_deps += libinput
 | 
						|
 | 
						|
# libinput hold gestures and high resolution scroll are available since 1.19.0
 | 
						|
add_project_arguments([
 | 
						|
	'-DLIBINPUT_HAS_HOLD_GESTURES=@0@'.format(libinput.version().version_compare('>=1.19.0').to_int()),
 | 
						|
	'-DLIBINPUT_HAS_SCROLL_VALUE120=@0@'.format(libinput.version().version_compare('>=1.19.0').to_int()),
 | 
						|
], language: 'c')
 |