guint direction : 4;
guint last_value_valid : 1;
gdouble last_value;
+ gdouble increment;
};
struct _GdkX11DeviceXI2
void
_gdk_x11_device_xi2_add_scroll_valuator (GdkX11DeviceXI2 *device,
guint n_valuator,
- GdkScrollDirection direction)
+ GdkScrollDirection direction,
+ gdouble increment)
{
ScrollValuator scroll;
scroll.n_valuator = n_valuator;
scroll.direction = direction;
scroll.last_value_valid = FALSE;
+ scroll.increment = increment;
g_array_append_val (device->scroll_valuators, scroll);
}
if (scroll->last_value_valid)
{
if (delta_ret)
- *delta_ret = valuator_value - scroll->last_value;
+ *delta_ret = (valuator_value - scroll->last_value) / scroll->increment;
scroll->last_value = valuator_value;
}
direction = GDK_SCROLL_RIGHT;
GDK_NOTE (INPUT,
- g_message ("\n\tscroll valuator %d: %s",
+ g_message ("\n\tscroll valuator %d: %s, increment %f",
scroll_info->number,
scroll_info->scroll_type == XIScrollTypeVertical
? "vertical"
- : "horizontal"));
+ : "horizontal",
+ scroll_info->increment));
_gdk_x11_device_xi2_add_scroll_valuator (GDK_X11_DEVICE_XI2 (device),
scroll_info->number,
- direction);
+ direction,
+ scroll_info->increment);
}
#endif /* XINPUT_2_2 */
default:
gint device_id);
void _gdk_x11_device_xi2_add_scroll_valuator (GdkX11DeviceXI2 *device,
guint n_valuator,
- GdkScrollDirection direction);
+ GdkScrollDirection direction,
+ gdouble increment);
gboolean _gdk_x11_device_xi2_get_scroll_delta (GdkX11DeviceXI2 *device,
guint n_valuator,
gdouble valuator_value,