aboutsummaryrefslogtreecommitdiff
path: root/backend/libinput/pointer.c
AgeCommit message (Collapse)Author
2024-02-29backend/libinput: use NULL to indicate missing device nameSimon Ser
libinput guarantees that the name is non-NULL, and an empty string if unset. However wlroots uses NULL to indicate that an input device name is unset.
2024-02-28pointer: drop enum wlr_axis_orientationSimon Ser
Instead, use enum wl_pointer_axis from the Wayland protocol.
2024-02-28pointer: drop enum wlr_axis_relative_directionSimon Ser
Instead, use enum wl_pointer_axis_relative_direction from the Wayland protocol.
2024-02-28pointer: use enum wl_pointer_button_stateSimon Ser
2024-02-28pointer: drop enum wlr_axis_sourceSimon Ser
Instead, use enum wl_pointer_axis_source from the Wayland protocol.
2024-01-23backend/libinput: populate pointer axis relative directionSimon Ser
2023-06-14backend/libinput: use struct initializers for eventsSimon Ser
This is more readable and consistent with the rest of wlroots.
2023-06-14backend/libinput: ignore multiple events for same pointer buttonSimon Ser
If the same button is pressed on two devices on the same seat, ignore the second event. This is also what Mutter does. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3665
2022-12-06build: unify naming for HAVE_* definesSimon Ser
We sometimes used HAS_, sometimes polluted the LIBINPUT_ namespace, etc.
2022-08-18Use wl_signal_emit_mutableAlexander Orzechowski
2022-07-11backend/libinput: code style consistencyJosé Expósito
Reduce a level of identation in "handle_pointer_axis" to keep the consistency with "handle_pointer_axis_value120".
2022-07-11backend/libinput: handle high-res scroll eventsJosé Expósito
On newer versions of libinput, the event LIBINPUT_EVENT_POINTER_AXIS has been deprecated in favour of LIBINPUT_EVENT_POINTER_SCROLL_WHEEL, LIBINPUT_EVENT_POINTER_SCROLL_FINGER and LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS. Where new events are provided by the backend, ignore LIBINPUT_EVENT_POINTER_AXIS, receive high-resolution scroll events from libinput and emit the appropiate wlr_pointer signal.
2022-07-11pointer: transform low-res to high-res axis eventsJosé Expósito
Currently, the "wlr_event_pointer_axis" event stores low-resolution values in its "delta_discrete" field. Low-resolution values are always multiples of one, i.e., 1 for one wheel detent, 2 for two wheel detents, etc. In order to simplify internal handling of events, always transform in the backend from the low-resolution value into the high-resolution value. The transformation is performed by multiplying by 120. The 120 magic number is used by the kernel and it is exposed to clients in the "WLR_POINTER_AXIS_DISCRETE_STEP" constant.
2022-03-17types/wlr_pointer: uniformize events nameSimon Zeni
2022-03-07interface/wlr_pointer: rework destroy sequenceSimon Zeni
The destroy callback in wlr_pointer_impl has been removed. The function `wlr_pointer_finish` has been introduced to clean up the resources owned by a wlr_pointer. `wlr_input_device_destroy` no longer destroys the wlr_pointer, attempting to destroy a wlr_pointer will result in a no-op. The field `name` has been added to the wlr_pointer_impl to be able to identify a given wlr_pointer device.
2022-03-02backend/libinput: rework pointer interfaceSimon Zeni
The wlr_libinput_input_device now owns its wlr_pointer, instead of creating a new wlr_libinput_input_device for it
2022-02-21backend/libinput: remove wlr_input_device_implSimon Zeni
2022-02-21types/wlr_pointer: add base wlr_input_deviceSimon Zeni
wlr_pointer owns its wlr_input_device. It will be initialized when the pointer is initialized, and finished when the pointer is destroyed.
2021-09-27backend/libinput: send hold gesture eventsJosé Expósito
Receive hold gesture events from libinput and emit the appropiate wlr_pointer signal.
2019-01-28Implement the pointer-gestures-unstable-v1 protocolGreg V
This protocol relays touchpad gesture events produced by libinput to supporting clients (e.g. Evince, Eye of GNOME).
2019-01-26pointer: add a frame eventemersion
Frame events group logically connected pointer events. It makes sense to make the backend responsible for sending frame events, since once the events are split (ie. once the frame events are stripped) it's not easy to figure out which events belongs to which frame again. This is also how Weston handles frame events. Fixes https://github.com/swaywm/wlroots/issues/1468
2018-12-21Add unaccelerated pointer values to wlr_event_pointer_motion eventsAlex Maese
2018-07-09util: add wlr_ prefix to log symbolsemersion
2018-05-12Add support for discrete axis valuesemersion
2018-04-25Make sure we don't use others' prefixesemersion
2018-04-25Remove wlr_ prefix from local symbolsemersion
2018-03-28Remove width_mm from wlr_pointer eventsDrew DeVault
2018-02-12Reformat all #include directivesemersion
2018-02-12Make wlr_signal_emit_safe privateemersion
2018-02-12Add wlr_signal_emit_safeemersion
2017-10-30remove time usecTony Crisci
2017-10-30refactor input time_sec to time_msecTony Crisci
2017-10-14Fix duplicated pointer axis eventsD.B
In pointer.c, some axis event was emitted even if the event pointer did not have current axis. In X11 backend pointer scroll events seem to be composed of both BUTTON_PRESS and BUTTON_RELEASE. Therefore we should skip one of them (RELEASE) to avoid event duplication.
2017-08-26implement wlr_cursor_map_input_to_outputTony Crisci
2017-08-14Refactor out wlr_pointer_stateDominique Martinet
2017-08-13libinput backend: massive renamingDominique Martinet
- 'libinput' (backend's) to libinput_context - 'device' (libinput_device) to libinput_dev - 'dev' (wlr_device) to wlr_dev - 'devices' lists tangling of libinput devices to wlr_devices - 'devices' list of wlr_devices in backend state to wlr_device_lists
2017-08-11Build libinput events on the stack instead of allocatingDominique Martinet
2017-08-06Changed header paths.Scott Anderson
2017-06-21Make event names consistentDrew DeVault
2017-06-21Reorganize wlr-commonDrew DeVault
2017-06-21Update everyone to use new headersDrew DeVault
2017-06-13Implement libinput wlr_pointerDrew DeVault