~hp/d2tk

c2b59fdb56a87a1adc1c7fdab23b4deea55e1f23 — Hanspeter Portner 11 months ago c9371e1
Add libinput event types from >=1.19
5 files changed, 61 insertions(+), 6 deletions(-)

M .builds/alpine-latest.yml
M d2tk/config.h.in
M meson.build
M meson_options.txt
M src/frontend_fbdev.c
M .builds/alpine-latest.yml => .builds/alpine-latest.yml +1 -1
@@ 25,7 25,7 @@ packages:

environment:
  project: d2tk
  CI_SCAN_BUILD_OPTS: -disable-checker securiy.insecureAPI.vfork -disable-checker unix.Vfork --exclude nanovg
  CI_SCAN_BUILD_OPTS: -disable-checker securiy.insecureAPI.vfork -disable-checker unix.Vfork --exclude nanovg --exclude pugl

secrets:
  - 0545580c-42ac-4700-b322-4e9df924eb07 # runner-ssh

M d2tk/config.h.in => d2tk/config.h.in +1 -0
@@ 5,6 5,7 @@

#define D2TK_EVDEV @D2TK_EVDEV@
#define D2TK_INPUT_1_15 @D2TK_INPUT_1_15@
#define D2TK_INPUT_1_19 @D2TK_INPUT_1_19@
#define D2TK_FONTCONFIG @D2TK_FONTCONFIG@
#define D2TK_DEBUG @D2TK_DEBUG@
#define D2TK_GLES_VERSION @D2TK_GLES_VERSION@

M meson.build => meson.build +10 -4
@@ 176,10 176,16 @@ else
	conf_data.set('D2TK_EVDEV', 0)
endif

if input_dep.found() and input_dep.version().version_compare('>=1.15.0')
	conf_data.set('D2TK_INPUT_1_15', 1)
else
	conf_data.set('D2TK_INPUT_1_15', 0)
conf_data.set('D2TK_INPUT_1_15', 0)
conf_data.set('D2TK_INPUT_1_19', 0)
if input_dep.found()
  if input_dep.version().version_compare('>=1.19.0')
    conf_data.set('D2TK_INPUT_1_19', 1)
  endif 

  if input_dep.version().version_compare('>=1.15.0')
    conf_data.set('D2TK_INPUT_1_15', 1)
  endif
endif

if use_fontconfig.enabled()

M meson_options.txt => meson_options.txt +1 -1
@@ 55,4 55,4 @@ option('use-fontconfig',
	value : 'disabled',
	yield : true)

option('version', type : 'string', value : '0.1.1329')
option('version', type : 'string', value : '0.1.1331')

M src/frontend_fbdev.c => src/frontend_fbdev.c +48 -0
@@ 454,7 454,55 @@ d2tk_frontend_step(d2tk_frontend_t *fbdev)
					} break;
				}
			} break;

#if D2TK_INPUT_1_19
			case LIBINPUT_EVENT_GESTURE_HOLD_BEGIN:
			{
				//FIXME
			} break;
			case LIBINPUT_EVENT_GESTURE_HOLD_END:
			{
				//FIXME
			} break;
			case LIBINPUT_EVENT_POINTER_SCROLL_WHEEL:
				// fall-through
			case LIBINPUT_EVENT_POINTER_SCROLL_FINGER:
				// fall-through
			case LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS:
			{
				struct libinput_event_pointer *evp =
					libinput_event_get_pointer_event(ev);

				int32_t dx = 0;
				int32_t dy = 0;

				if(libinput_event_get_type(ev) == LIBINPUT_EVENT_POINTER_SCROLL_WHEEL)
				{
					dx = libinput_event_pointer_get_scroll_value_v120(evp,
						LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL);
					dy = libinput_event_pointer_get_scroll_value_v120(evp,
						LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL);
				}
				else
				{
					dx = libinput_event_pointer_get_scroll_value(evp,
						LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL);
					dy = libinput_event_pointer_get_scroll_value(evp,
						LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL);

					dx /= 100.f; //FIXME
					dy /= 100.f; //FIXME
				}

				d2tk_base_add_mouse_scroll(fbdev->base, -dx, -dy);
			} break;
			case LIBINPUT_EVENT_POINTER_AXIS:
			{
				// nothing to do
			} break;
#else
			case LIBINPUT_EVENT_POINTER_AXIS:
#endif
			{
				struct libinput_event_pointer *evp =
					libinput_event_get_pointer_event(ev);