aboutsummaryrefslogtreecommitdiff
path: root/rootston/seat.c
AgeCommit message (Collapse)Author
2019-02-23Merge pull request #1517 from emersion/refactor-dndDrew DeVault
Refactor drag-and-drop
2019-02-23rootston: make roots_view embedded and remove unionsemersion
2019-02-20rootston: cancel drag on invalid serialemersion
2019-02-20data-device: refactor wlr_dragemersion
2019-01-30rootston: only allow one drag icon per seatemersion
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
2019-01-24data-device, primary-selection: add request_set_selectionemersion
This makes compositors able to block and/or customize set_selection requests coming from clients. For instance, it's possible for a compositor to disable rich selection content (by removing all MIME types except text/plain). This commit implements the design proposed in [1]. Two new events are added to wlr_seat: request_set_selection and request_set_primary_selection. Compositors need to listen to these events and either destroy the source or effectively set the selection. Fixes https://github.com/swaywm/wlroots/issues/1138 [1]: https://github.com/swaywm/wlroots/issues/1367#issuecomment-442403454
2018-12-15Working switches in rootston:Ryan Walklin
Factor out switch handling to separate file Add formal enum for toggle action Implement binding actions
2018-12-15Remove redundant signal in seat.cRyan Walklin
2018-12-15[WIP][DONTMERGE]Add support for libinput_switch input devicesRyan Walklin
These are used primarily by laptops to signal the state of the lid (open/closed) and tablet mode if supported, based on ACPI events.
2018-12-05rootston: use box for views positionLouis Taylor
2018-11-12Use #if instead of #ifdef for wlroots config dataemersion
This prevents some annoying issues when e.g. not including wlr/config.h or making a typo in the guard name.
2018-10-09rootston: add support for text input and the basic of input methodDorota Czaplejewicz
The compositor acts as a relay between applications using the text-input protocol and input methods using the input-method protocol. This change implements the basic but useful support for input-method, leaving out grabs as well as popups.
2018-09-27Merge pull request #1266 from Ongy/xdc_tablet_fixDrew DeVault
Fix tablet_tool tilt and send proximity_out
2018-09-27Fix tablet_tool tilt and send proximity_outMarkus Ongyerth
Originally I asumed tilt_x and tilt_y are very unlikely to change independent, I was proven wrong. And while investigating Krita not using the Erasor tool, I found a bug, which is unrelated though.
2018-09-27pointer-constraints: refactoringemersion
* Rename the constraint_create signal to new_constraint for consistency * Move the constraint_destroy signal to the constraint itself * Use rotate_child_position instead of duplicating logic * Fix inert constraint resource handling * Style fixes
2018-09-18Implement pointer-constraints protocol in wlroots and rootstonLas
2018-09-18Make wlr_seat->data in rootston point to the wrapping roots_seatLas
2018-09-18Update pointer focus when cycling focusLas
2018-09-14layer-shell: add _v1 suffixemersion
2018-09-12Merge pull request #1160 from Ongy/tablet-grabsemersion
Tablet grabs
2018-09-10Merge pull request #1227 from emersion/rootston-segfault-tablet-destroyDrew DeVault
rootston: fix segfault on tablet pad destroy
2018-09-07Fix #1129 and remove sx, sy from wlr_drag_iconnyorain
sx, sy used to store the buffer offset of the drag surface which was then be added (by rootston) to the drag icon position. Buffer offsets are handled already in surface_intersect_output (output.c) so they were added twice for dnd surfaces.
2018-09-02rootston: fix segfault on tablet pad destroyemersion
2018-08-16Fix build on FreeBSDemersion
2018-08-06tablet-v2 tool: Implement implicit grabMarkus Ongyerth
Implement the tablet-v2 tablet tool's implicit grab semantics for buttons and tip. This avoids losing focus (to other [sub]surfaces) when a button is held, or the tip is down. This should help when the device is used close to a surface's border and would otherwise have to be very precise.
2018-07-29reintroduce xwayland is_unmanagedMarkus Ongyerth
153f37bdf57c61e7fb09162a6791afe8b9b4d0ef (#1145) removed the wlr_xwayland_is_unamanged function while fixing OR, because it was belieived that it's supposed to work around the broken OR handling. This was a misunderstanding. is_unmanaged is (while sort of a hack) intended to work around inherent differences between "real" X sessions and our Xwayland/wayland situation. The main reason it exists is to support applications like rofi and dzen, while not handing focus to other OR windows (which should *not* be required). Traditionally, these applications just grabbed input from X and didn't need to be focused by any logic in the WM. Which of course doesn't work in wayland compositors. So we have to give them focus in some way. Giving *every* OR window focus, breaks other applications that don't expect focus to change. A testcase that was pointed out to me where wlr_xwayland_is_unamanged was breaking things is https://github.com/swaywm/sway/issues/2128 (syncplay, gitk, gitgui) Supposedly it broke using keyboard to navigate the menus. I can't reproduce this with this patch. The popups can be navigated as long as the parent has focus.
2018-07-23tablet-v2 tablet_tool grab implementationMarkus Ongyerth
Implement the basic logic for tablet-v2 tablet_tool's grabs. And plug in the default grab.
2018-07-19tablet-v2 tablet_pad grab implementationMarkus Ongyerth
Implement the basic logic for tablet-v2 tablet_pad's grabs. And plug in the default grab. Features like "holding" the focus should be implemented via grabs, like they are for pointer and keyboard.
2018-07-18xwayland: handle override_redirect flag changesemersion
The override_redirect flag can change on configure notify and on map notify. This adds an event to know when it changes. This removes wlr_xwayland_surface_is_unmanaged which was wrongly using the window type to decide whether the view should be unmanaged. A similar patch was proposed to Weston, but has never been merged upstream [1]. [1]: https://patchwork.freedesktop.org/patch/211161/
2018-07-14propagate rename to rootston codeMarkus Ongyerth
2018-07-14rename wlr_tablet_tool to wlr_tabletMarkus Ongyerth
The previous naming was based on the input-device capability names from libinput. With code that uses the libinput_tablet_tool and mapping into tablet-v2, this is confusing, so the name is changed to follow the names used in the protocol.
2018-07-14Remove unused tablet_pad list from toolsMarkus Ongyerth
2018-07-14Another feedback passMarkus Ongyerth
2018-07-14Handle relative motion for mouse toolsMarkus Ongyerth
2018-07-14Send all tablet tool axis eventsMarkus Ongyerth
2018-07-14Fix clang build errorsMarkus Ongyerth
2018-07-14Hook up set_cursor in rootstonMarkus Ongyerth
2018-07-141st feedback passMarkus Ongyerth
Rename make_ functions to _create Implement set_cursor and set_feedback
2018-07-14Fix segfaultinessMarkus Ongyerth
2018-07-14Add tool buttonsMarkus Ongyerth
2018-07-14Propagate most axis events to clientsMarkus Ongyerth
2018-07-14Implement basic tablet_pad handling (bound to keyboard focus)Markus Ongyerth
2018-07-14Basic tablet_v2 object lifetimeMarkus Ongyerth
2018-07-09util: add wlr_ prefix to log symbolsemersion
2018-06-24use seat function to end grabTony Crisci
2018-06-10rootston: Cancel existing keyboard grab when changing focusGenki Sky
It's possible that a non-default keyboard grab exists when we are trying to change focus. For example, say there is an XDG popup when we click on a different window. This popup's keyboard grab will swallow any keyboard_notify_enter(), meaning the newly-clicked window won't receive keyboard input. So, we cancel any existing grabs in roots_seat_set_focus(). Before this fix, a window would have been set as active but not receive keyboard entry. Fixes #233. Signed-off-by: Genki Sky <sky@genki.is>
2018-06-06dont damage drag icon after update_positionTony Crisci
2018-06-05update drag position at the right timesTony Crisci